angularjs gruntjs protractor e2e-testing

angularjs - Integrador de transportador con Yeoman a través de Grunt



gruntjs protractor (3)

  1. Instale protractor y grunt-protractor-runner de npm :

    npm install protractor grunt-protractor-runner --save-dev

  2. Cree un archivo de configuración para transportador ( protractor.conf.js ), cambie las specs y baseUrl a sus archivos de prueba y servidor de prueba:

    exports.config = { seleniumAddress: ''http://localhost:4444/wd/hub'', specs: [''test/e2e/*_test.js''], baseUrl: ''http://localhost:9001'' //default test port with Yeoman }

  3. Actualiza tu Gruntfile.js , agrega lo siguiente después de la tarea de karma:

    protractor: { options: { keepAlive: true, configFile: "protractor.conf.js" }, run: {} }

  4. Agregue la tarea del transportador bajo prueba

    grunt.registerTask(''test'', [ ''clean:server'', ''concurrent:test'', ''autoprefixer'', ''connect:test'', ''karma'', ''protractor:run'' ]);

  5. Descargue e inicie el servidor de selenio:

    node_modules/protractor/bin/webdriver-manager update node_modules/protractor/bin/webdriver-manager start

    (En Windows :)

    node node_modules/protractor/bin/webdriver-manager update node node_modules/protractor/bin/webdriver-manager start

  6. Actualice su package.json , agregue lo siguiente después de "devDependencies" . Esto ejecutará el comando después de la npm install por lo que no es necesario que recuerde todo el tiempo.

    "scripts": { "install": "node node_modules/protractor/bin/webdriver-manager update" }

  7. Ejecute la prueba usando gruñido

    grunt test

Si quiere que el transportador inicie el servidor por usted, elimine

seleniumAddress: ''http://localhost:4444/wd/hub'',

de protractor.conf.js , luego ejecutar la grunt test iniciará una instancia de selenio independiente durante la prueba y la abandonará después de ejecutar el conjunto de pruebas.

Quiero integrar Transportador con un andamio producido por Yeoman. Seguí un tutorial y, en él, el scenario-runner más antiguo se usó para configurar pruebas e2e (a través de grunt ).

Me gustaría actualizar mi andamio y utilizar Transportador en su lugar.
¿Alguna idea?


Como @user2172816 menciona en su respuesta, @user2172816 seleniumAddress: ''http://localhost:4444/wd/hub'' de tu configuración de transportador generalmente hará que Protractor inicie una instancia de Selenium por ti.

Como alternativa, puede usar grunt-protractor-webdriver para iniciar el selenio:

1) Instalar y guardar grunt-transportador-webdriver

npm install grunt-protractor-webdriver --save-dev

2) Agregue lo siguiente en su función de definición de Grunt:

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

3) Agregue la siguiente tarea del transportador webdrractor de ejemplo:

protractor_webdriver: { start: { options: { path: ''node_modules/protractor/bin/'', command: ''webdriver-manager start'' } } }

4) Agregue protractor_webdriver a su tarea de test antes de ejecutar transportador, por ejemplo

grunt.registerTask(''test'', [ ''clean:server'', ''concurrent:test'', ''autoprefixer'', ''connect:test'', ''karma'', ''protractor_webdriver'', ''protractor:run'' ]);


Una cosa para agregar a la respuesta existente; si quieres iniciar el servidor de Selenium automáticamente, también debes especificar la ubicación de tu seleniumServerJar y chromeDriver (si usas Chrome), de lo contrario las pruebas no funcionarán hasta que hayas iniciado manualmente el servidor de Selenium (asegúrate de ejecutar "webdriver- actualización del administrador "desde la línea de comando primero):

protractor: { options: { keepAlive: false, configFile: "test/config/protractor.conf.js", noColor: true, // If true, protractor will not use colors in its output. args: { seleniumServerJar: ''node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar'', chromeDriver: ''node_modules/protractor/selenium/chromedriver.exe'' } }, run: { } },