test-wekan.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/usr/bin/env bash
  2. set -e
  3. # ------------------------------------------
  4. #
  5. # Variable declarations
  6. #
  7. # ------------------------------------------
  8. PROJECT_ROOT=$(pwd)
  9. PORT=4040
  10. RUN_ONCE='--once'
  11. VERBOSE_MODE=0
  12. WATCH_MODE=0
  13. COVERAGE=0
  14. # ------------------------------------------
  15. #
  16. # Read args from script call
  17. #
  18. # ------------------------------------------
  19. while getopts "vcw" opt; do
  20. case $opt in
  21. v)
  22. VERBOSE_MODE=1
  23. ;;
  24. c)
  25. COVERAGE=1
  26. ;;
  27. w)
  28. WATCH_MODE=1
  29. RUN_ONCE=''
  30. ;;
  31. \?)
  32. echo "Invalid option: -$OPTARG" >&2
  33. exit 1
  34. ;;
  35. esac
  36. done
  37. # ------------------------------------------
  38. #
  39. # Print variables on verbose mode
  40. #
  41. # ------------------------------------------
  42. if [ "$VERBOSE_MODE" -eq "1" ];
  43. then
  44. PROJECT_NAME=`basename "$PROJECT_ROOT"`
  45. echo "=> Test $PROJECT_NAME"
  46. echo "=> Path: [${PROJECT_ROOT}]"
  47. echo "=> Port: [${PORT}]"
  48. echo "=> Watch mode: [${WATCH_MODE}] ${RUN_ONCE}"
  49. echo "=> COVERAGE: [${COVERAGE}]"
  50. fi
  51. if [ "$WATCH_MODE" -eq "0" ];
  52. then
  53. # ---------------------------------------------------------------
  54. # in cli mode we use a headless browser to include client tests
  55. # and we activate the coverage reporting functionality
  56. # ---------------------------------------------------------------
  57. BABEL_ENV=COVERAGE \
  58. TEST_BROWSER_DRIVER=puppeteer \
  59. TEST_SERVER=1 \
  60. TEST_CLIENT=1 \
  61. COVERAGE=${COVERAGE} \
  62. COVERAGE_OUT_HTML=1 \
  63. COVERAGE_OUT_LCOVONLY=1 \
  64. COVERAGE_OUT_TEXT_SUMMARY=1 \
  65. COVERAGE_OUT_JSON_SUMMARY=1 \
  66. COVERAGE_APP_FOLDER=$PWD/ \
  67. COVERAGE_VERBOSE_MODE=${VERBOSE_MODE} \
  68. meteor test \
  69. --exclude-archs=web.browser.legacy,web.cordova \
  70. --driver-package=meteortesting:mocha \
  71. --settings=settings.json \
  72. --port=${PORT} \
  73. --once
  74. cat ./.coverage/summary.txt
  75. else
  76. # ---------------------------------------------------------------
  77. # in watch mode we neither use a browser driver, nor coverage
  78. # se we speed up the test reload in the development phase
  79. # ---------------------------------------------------------------
  80. TEST_BROWSER_DRIVER=puppeteer \
  81. TEST_SERVER=1 \
  82. TEST_CLIENT=1 \
  83. meteor test \
  84. --exclude-archs=web.browser.legacy,web.cordova \
  85. --driver-package=meteortesting:mocha \
  86. --settings=settings.json \
  87. --port=${PORT}
  88. fi