tutorial locators example español javascript angularjs gruntjs protractor end-to-end

javascript - locators - Cómo ejecutar una prueba e2e individual con gruñido y transportador



protractor tutorial español (4)

Supongo que esto es posible y, de hecho, bastante simple, pero soy nuevo en ambos gruñidos y transportador y no pude encontrar la respuesta en línea (tal vez utilicé criterios de búsqueda erróneos).

Tengo la siguiente prueba e2e en prueba de archivo test/e2e/Recipients.js :

describe(''Recipients Tab'', function() { beforeEach(function () { browser.get(''#/recipients''); }); it(''should have no e-mail list'', function () { expect(element(by.css(''accordion'')).isPresent()).toBe(false); }); });

Actualmente, estoy haciendo esto:

grunt e2e

El archivo de configuración de mi transportador:

exports.config = { seleniumAddress: ''http://localhost:4444/wd/hub'', capabilities: { ''browserName'': ''chrome'' }, specs: [''../e2e/**/*.js''], baseUrl : ''http://localhost:8080/spr'', jasmineNodeOpts: { showColors: true // Use colors in the command line report. } };

Por supuesto, esto ejecuta todas mis pruebas, pero mientras estoy desarrollando una prueba específica, no quiero ejecutar toda la batería de pruebas. Quiero ejecutar este archivo.

¿Cómo puedo hacer eso? ¿Hay alguna bandera o algo?

Gracias


Simplemente prefijó x antes de describir lo que no necesita ejecutar. Por ejemplo, si no necesita ejecutar el traje de prueba, use lo siguiente,

xdescribe(''Recipients Tab'', function() { beforeEach(function () { browser.get(''#/recipients''); }); it(''should have no e-mail list'', function () { expect(element(by.css(''accordion'')).isPresent()).toBe(false); });

});


Solo tiene que pasar la opción de specs a la CLI del transportador. La opción de especificaciones espera que se ejecute una lista de archivos JS separados por comas.

Deberá editar su Gruntfile.js para pasar esta opción al transportador.


Alternativamente, organice sus pruebas como un conjunto de suites de prueba :

exports.config = { seleniumAddress: ''http://localhost:4444/wd/hub'', capabilities: { ''browserName'': ''chrome'' }, suites: { homepage: ''tests/e2e/homepage/**/*Spec.js'', search: [''tests/e2e/contact_search/**/*Spec.js''] }, jasmineNodeOpts: { showColors: true } };

Y ejecute únicamente suites de prueba específicas, utilizando el argumento de línea de comando de --suite :

protractor protractor.conf.js --suite homepage

Ver también: Prolongador para AngularJS .


Dado que está utilizando Grunt + Prolongador, sugiero que las pruebas individuales se configuren no en ''protractor.conf.js'', sino en ''Gruntfile.js'' usando el ''grunt-prolongador-corredor'' Módulo Grunt. De modo que puede configurar tantas pruebas individuales o múltiples como desee con diferentes configuraciones

Básicamente, lo incluyes en la parte superior:

grunt.loadNpmTasks(''grunt-protractor-runner'');

luego, configura tu tarea en grunt.initConfig así:

grunt.initConfig({ ..... ..... ..... protractor: { options: { configFile: "protractor.conf.js", keepAlive: true // If false, the grunt process stops when the test fails. }, singleTestRun: { options: { args: { baseUrl: "http://yourDomain.com", // setting up base URL here specs: [ ''./specs/*.js'', ''./another/specs/*.js'' ], capabilities: { ''browserName'': ''chrome'', shardTestFiles: false }, } } }, }, ..... ..... ..... });

luego, registre la tarea de Grunt en el mismo archivo:

grunt.registerTask(''run-test'', [''someTaskOne'', ''protractor:singleTestRun'', ''shell:someshellscript'']);

y luego, ejecuta esta tarea con:

grunt run-test