Используемая среда - 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, с которым мне сложно написать код