Commit a6ac2b52 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Depura tareas y configuración de testeo

Elimina exposición de recursos de testeo en la aplicación vía node, ya
que internjs es capaz de proveerlos. Sólo se necesita esta
característica para los test funcionales de módulos.

Refactoriza la composición de opciones de testeo, abstrayendo
elementos de ejecución en remoto.
Permite el paso de nuevas variables a tareas grunt de testeo, para
generalizar su uso.

Introduce jobs ci de testeo local sólo para chrome. Esto permite
comprobar si un error se da en ejecución en local, remoto o ambas.
Revisa y corrige parámetros de jobs de testeo.
parent 138e81d7
Loading
Loading
Loading
Loading
+39 −10
Original line number Diff line number Diff line
@@ -78,20 +78,37 @@ prepare-unbuilt-version:
  rules: *only-non-master-branches-job-rules
  allow_failure: true

.run-local-tests:
  variables: &run-local-test-variables
    TEST_BROWSER: chrome

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

.run-remote-unit-tests:
.run-unit-tests:
  extends: .run-pre-build-tests
  variables:
    <<: *run-remote-test-variables
  script:
    - grunt test-unit-remote --headless --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST} | tee test.out
  after_script:
    - coverage=$(grep '^All files.*' test.out | cut -d '|' -f 2 | tr -d ' ')
    - echo "Coverage - ${coverage}%"
    - rm test.out

run-local-unit-tests:
  extends: .run-unit-tests
  variables:
    <<: *run-local-test-variables
  script:
    - grunt test-unit-local --headless --browser=${TEST_BROWSER} | tee test.out

.run-remote-unit-tests:
  extends: .run-unit-tests
  variables:
    <<: *run-remote-test-variables
  script:
    - >
      grunt test-unit-remote --headless --browser=${TEST_BROWSER} --ownServerHost="${TEST_OWN_SERVER_HOST}"
      --remoteHost=${TEST_REMOTE_HOST} | tee test.out

run-remote-unit-tests-chrome:
  extends: .run-remote-unit-tests
  variables:
@@ -102,6 +119,16 @@ run-remote-unit-tests-firefox:
  variables:
    TEST_BROWSER: firefox

run-local-modules-functional-tests:
  extends: .run-pre-build-tests
  variables:
    <<: *run-local-test-variables
  script:
    - npm start &
    - >
      grunt test-functional-local --functionalSuites=tests/functional/modules/**/!\(*Script\).js --headless
      --browser=${TEST_BROWSER}

.run-remote-modules-functional-tests:
  extends: .run-pre-build-tests
  variables:
@@ -110,7 +137,7 @@ run-remote-unit-tests-firefox:
    - npm start &
    - >
      grunt test-functional-remote --functionalSuites=tests/functional/modules/**/!\(*Script\).js --headless
      --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST}
      --browser=${TEST_BROWSER} --ownServerHost="${TEST_OWN_SERVER_HOST}" --remoteHost=${TEST_REMOTE_HOST}

run-remote-modules-functional-tests-chrome:
  extends: .run-remote-modules-functional-tests
@@ -150,17 +177,19 @@ run-scheduled-remote-functional-tests:
  stage: test-deploy
  variables:
    <<: *run-remote-test-variables
    SERVER_URL: https://${DEV_PUBLIC_HOSTNAME}
    TEST_BROWSER: chrome
    TEST_ROLE: administrator
  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}
      grunt test-functional-remote --serverUrl="${SERVER_URL}" --user="${REDMIC_TEST_USER}" --pass="${REDMIC_TEST_PASS}"
      --role=${TEST_ROLE} --suitesGroups="${SUITES_GROUPS}" --browser=${TEST_BROWSER} --remoteHost=${TEST_REMOTE_HOST}
  dependencies: []
  artifacts:
    name: ${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}
    expire_in: 1 month
    when: always
    paths:
      - 'test_reports/test-functional-local*'
      - 'test_reports/test-functional-remote*'
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
+0 −1
Original line number Diff line number Diff line
@@ -171,7 +171,6 @@ function expose(app) {
	} else {
		require('./styles')(app);
		exposeContents(app, 'public');
		exposeContents(app, 'tests');
		exposeContents(app, 'node_modules');
	}

+7 −5
Original line number Diff line number Diff line
@@ -94,7 +94,10 @@ module.exports = function(grunt) {
				suitesGroups: suitesGroups,
				browser: browser,
				headless: headless,
				userDataDir: userDataDir,
				userDataDir: userDataDir
			},
			remoteTestParams = {
				ownServerHost: ownServerHost,
				remoteHost: remoteHost,
				remotePort: remotePort
			},
@@ -116,11 +119,10 @@ module.exports = function(grunt) {
			}),

			testUnitLocalOptions = require(testUnitLocalPath)(testUnitParams),
			testUnitRemoteOptions = require(testUnitRemotePath)(deepmerge(testUnitParams, {
				ownServerHost: ownServerHost
			})),
			testUnitRemoteOptions = require(testUnitRemotePath)(deepmerge(testUnitParams, remoteTestParams)),
			testFunctionalLocalOptions = require(testFunctionalLocalPath)(testFunctionalParams),
			testFunctionalRemoteOptions = require(testFunctionalRemotePath)(testFunctionalParams);
			testFunctionalRemoteOptions = require(testFunctionalRemotePath)(deepmerge(testFunctionalParams,
				remoteTestParams));

		grunt.config('intern', {
			'test-unit-local': {
+2 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ module.exports = function(grunt) {
		remoteOptionParameters = [
			'"--remoteHost=host" para redefinir la dirección del servicio de testeo remoto'
			, '"--remotePort=port" para redefinir el puerto del servicio de testeo remoto'
			, '"--ownServerHost=host" para redefinir dirección del servidor de intern, para indicarle al túnel remoto'
		],

		unitOptionParameters = [
@@ -45,8 +46,7 @@ module.exports = function(grunt) {
		commonTasks.concat(['intern:test-functional-local']));

	grunt.registerTask('test-unit-remote',
		['Ejecuta los tests unitarios en entorno remoto'
			, '"--ownServerHost=host" para redefinir dirección del servidor de intern, para indicarle al túnel remoto']
		['Ejecuta los tests unitarios en entorno remoto']
			.concat(commonOptionParameters)
			.concat(unitOptionParameters)
			.concat(remoteOptionParameters)
+1 −2
Original line number Diff line number Diff line
@@ -20,8 +20,7 @@ module.exports = function(args) {
	var config = {
		capabilities: {
			'idle-timeout': 30,
			fixSessionCapabilities: false,
			remoteFiles: true
			fixSessionCapabilities: false
		},

		environments: environments,
Loading