Я пытаюсь реализовать подход BDD в моих тестах на транспортир. Пока это довольно простая настройка. Я могу запустить пример теста, используя ``, но когда я попытался использовать serenity-js
, следуя инструкциям здесь , я получаю следующую ошибку -
DevTools listening on ws://127.0.0.1:56872/devtools/browser/bf7318c0-b0a4-4dea-8
ae4-e197dbda68f7
Class constructor Cli cannot be invoked without 'new'
[20:09:31] I/launcher - 0 instance(s) of WebDriver still running
[20:09:31] I/launcher - chrome #01 failed 1 test(s)
[20:09:31] I/launcher - overall: 1 failed spec(s)
[20:09:31] E/launcher - Process exited with error code 1
An unexpected error occurred: undefined
Глядя на это, я не могу понять, что является причиной этой ошибки и что я здесь делаю неправильно.
Ниже мой protractor.js
файл -
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/features/**/*.feature'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200',
framework: 'custom',
// frameworkPath: require.resolve('protractor-cucumber-framework'),
frameworkPath: require.resolve('serenity-js'),
cucumberOpts: {
require: ['./src/steps/**/*.steps.ts'],
// format: 'pretty', // enable console output
compiler: 'ts:ts-node/register' // interpret step definitions as TypeScript
},
serenity: {
dialect: 'cucumber'
},
onPrepare() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
}
};
Ниже моя структура каталогов -
И вот мой файл app.feature -
Feature: Go to the home
Display the title
Scenario: Home Page
Given I am on the home page
When I do nothing
Then I should see the title
Ниже следует app.po
-
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get('/');
}
getTitleText() {
return element(by.css('app-root h1')).getText();
}
}
Ниже следует app.steps.ts
import { Before, Given, Then, When } from 'cucumber';
import { expect } from 'chai';
import { AppPage } from '../pages/app.po';
let page;
Before(() => {
page = new AppPage();
});
Given(/^I am on the home page$/, async () => {
await page.navigateTo();
});
When(/^I do nothing$/, () => {});
Then(/^I should see the title$/, async () => {
expect(await page.getTitleText()).to.equal('Welcome to poc-serenity!');
});