Commit 1e95f625 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Omite tests locales, fija runner y permite fallos

Los tests pasan a ser solamente en remoto, para dejar de depender de la
imagen base con chrome en el futuro. Habrá que replantear los tests
funcionales de módulos para que no dependan de recursos locales.
Se permite la ejecución del resto del pipeline aunque los tests no
pasen, para que no se impidan los despliegues forzosamente.
Es requisito que los tests se ejecuten en entorno propio, con acceso al
servicio selenium, por lo que se fija el runner a usar en estos jobs
mediante tags.
parent 8fceb66d
Loading
Loading
Loading
Loading
+20 −55
Original line number Diff line number Diff line
@@ -65,41 +65,32 @@ prepare-unbuilt-version:
      - public/stylesheets/submodules/
  rules: *only-non-master-branches-job-rules

.run-unit-tests:
.run-tests:
  extends: .web-build
  stage: pre-build
  script:
    - grunt test --headless --browser=${TEST_BROWSER} | tee test.out
    - coverage=$(grep '^All files.*' test.out | cut -d '|' -f 2 | tr -d ' ')
    - echo "Coverage - ${coverage}%"
    - rm test.out
  tags:
    - custom-runner
  cache:
    policy: pull

.run-pre-build-tests:
  extends: .run-tests
  stage: pre-build
  rules: *only-non-master-branches-job-rules
  allow_failure: true

.run-remote-tests:
  variables: &run-remote-test-variables
    TEST_REMOTE_HOST: selenium-hub

.run-remote-unit-tests:
  extends: .web-build
  stage: pre-build
  extends: .run-pre-build-tests
  variables:
    TEST_REMOTE_HOST: selenium-hub
    <<: *run-remote-test-variables
  script:
    - grunt test-unit-remote --headless --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST} | tee test.out
    - coverage=$(grep '^All files.*' test.out | cut -d '|' -f 2 | tr -d ' ')
    - echo "Coverage - ${coverage}%"
    - rm test.out
  cache:
    policy: pull
  rules: *only-non-master-branches-job-rules

run-unit-tests-chrome:
  extends: .run-unit-tests
  variables:
    TEST_BROWSER: chrome

run-unit-tests-firefox:
  extends: .run-unit-tests
  variables:
    TEST_BROWSER: firefox

run-remote-unit-tests-chrome:
  extends: .run-remote-unit-tests
@@ -111,37 +102,13 @@ run-remote-unit-tests-firefox:
  variables:
    TEST_BROWSER: firefox

.run-modules-functional-tests:
  extends: .web-build
  stage: pre-build
  script:
    - npm start &
    - grunt test-functional-local --functionalSuites=tests/functional/modules/**/!\(*Script\).js --headless --browser=${TEST_BROWSER}
  cache:
    policy: pull
  rules: *only-non-master-branches-job-rules

.run-remote-modules-functional-tests:
  extends: .web-build
  stage: pre-build
  extends: .run-pre-build-tests
  variables:
    TEST_REMOTE_HOST: selenium-hub
    <<: *run-remote-test-variables
  script:
    - npm start &
    - grunt test-functional-local --functionalSuites=tests/functional/modules/**/!\(*Script\).js --headless --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST}
  cache:
    policy: pull
  rules: *only-non-master-branches-job-rules

run-modules-functional-tests-chrome:
  extends: .run-modules-functional-tests
  variables:
    TEST_BROWSER: chrome

run-modules-functional-tests-firefox:
  extends: .run-modules-functional-tests
  variables:
    TEST_BROWSER: firefox
    - grunt test-functional-remote --functionalSuites=tests/functional/modules/**/!\(*Script\).js --headless --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST}

run-remote-modules-functional-tests-chrome:
  extends: .run-remote-modules-functional-tests
@@ -176,19 +143,17 @@ prepare-built-version:
  environment:
    url: https://${PUBLIC_HOSTNAME}

run-functional-tests:
  extends: .web-build
run-scheduled-remote-functional-tests:
  extends: .run-tests
  stage: test-deploy
  variables:
    TEST_REMOTE_HOST: selenium-hub
    <<: *run-remote-test-variables
  script:
    - >
      grunt test-functional-local --serverUrl="https://${DEV_PUBLIC_HOSTNAME}" --user="${REDMIC_TEST_USER}"
      --pass="${REDMIC_TEST_PASS}" --role=administrator --suitesGroups="${SUITES_GROUPS}" --headless --browser=chrome
      --browser=firefox --remoteHost=${TEST_REMOTE_HOST}
  dependencies: []
  cache:
    policy: pull
  artifacts:
    name: ${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}
    expire_in: 1 month