Как выполнить метод beforeTest и afterTest с использованием машинописи (транспортир + огурец) - PullRequest
0 голосов
/ 31 октября 2019

Используемая среда - Protractor BDD - Язык огурца - Машинопись

  • Теперь я реализовал среду, и сценарий тестирования также работает с транспортиром.
  • НоПроблема, с которой я сталкиваюсь, заключается в том, что когда я пишу другой сценарий с огурцом, мой тест проваливается: «Сеанс либо завершен, либо не запущен»в моем конфиге и в конце я закрываю сервер / драйвер

  • Теперь я написал другой тестовый сценарий, так как огурец не зависит от каждого сценария, когда сек запускается, он не выполняет конфигурацию снова. Теперь мне нужен метод beforeTest для вызова.
  • Так что я не уверен, как реализовать это в машинописи, так как я новичок в этом.

  • Пробовал ту же концепцию Java-пути, но не сработало. Там, где примеры для javascript, но все еще не помогли мне.

  • Попытался создать новую папку утилит и поместить в нее мой beforeTest, но функция там не вызывает
  • Попытался использоватьbeforeLaunch () с в моем файле конфигурации, но все равно не получается

мой файл конфигурации: config.ts

export  let config: Config = {
        allScriptsTimeout: 40000,
        getPageTimeout: 40000,
        setDefaultTimeout: 60000,
        defaultTimeoutInterval: 30000,
        specs: [
            // '../../utils/beforeEach.ts',
            '../../features/*.feature',
        ],
        onPrepare: () => {
            Reporter.createDirectory(jsonReports);
            tsNode.register({
                project: './tsconfig.json'
            });
        },
        multiCapabilities: [
            androidPixel2XLCapability,
            // iPhoneXCapability
        ],
        framework: 'custom',
        frameworkPath: require.resolve('protractor-cucumber-framework'),
        cucumberOpts: {
            compiler: "ts:ts-node/register",
            glue: ["steps"],
            format: [
                "json:./reports/json/cucumber_report.json",
            ],
            require: ['supports/timeout.js', '../../stepdefinitions/*.ts'],
            tags: "@firstPurchasePopup",
        },
        seleniumAddress: serverAddress,

        onComplete: () => {
            Reporter.createHTMLReport();
        },


       // =====
       // Hooks
       // =====
       beforeTest: function () {

       },

       beforeLaunch(){
            console.log("Before");
            seleniumAddress: 'http://localhost:4723/wd/hub';
       },

       afterLaunch() {
            console.log("After");
       },
    };

мой другой beforeEach. TS: это не работает, но то, что я устал и не работал.

import {After, AfterAll, Before} from "cucumber";
const serverAddress = 'http://localhost:4723/wd/hub';
import {beforeEach, afterEach, describe} from "selenium-webdriver/testing";



    beforeEach(function () {
    console.log("Before");
    });
// });

afterEach(function () {
    console.log("Before");
});

// let beforeEach: () => void;
// beforeEach = () => {
//     console.log("Before Test");
//     // config.multiCapabilities;
//     seleniumAddress: serverAddress;
// };
//
// let afterEach: () => void;
// afterEach = () => {
//     console.log("After Test");
// };

Это мой файл функций: bonus.feature

this is my feature file:

Background:
    Given I launch the app
    Then I should see the popup window for the Bonus
    And I verify the UI
    Then I tap on ok button
    And The popup window should not be seen

  @firstPurchasePopup
  Scenario: firstPurchasePopup new join button
    When I tap on the 'New ' button
    And The popup window should not be seen
    Then I navigate back from join page to home page
    Then The popup window should not be seen
    Then I close the app

  @firstPurchasePopup
  Scenario: firstPurchasePopup login button
    And I tap on log in button on the initial screen
    Then I navigate back from login page to home page
    And The popup window should not be seen
    Then I close the app

Я ожидаю, что мой сценарий, что у меня естьзаписывается для выполнения обоих по порядку, например, выполнить сценарий: firstPurchasePopup, новая кнопка соединения, которую он выполняет. Но при повторном запуске приложения сек Scenario: firstPurchasePopup login button не работает, так как драйвер не запускается снова, поскольку он был закрыт в предыдущей версии. чтобы запустить его, мне нужно создать beforeTest, с которым мне сложно написать код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...