Я новичок в мире TestCafe и пытаюсь реализовать фреймворк для TestCafe + CucumberJs. Не уверен, что идет не так, но я получаю сообщение об ошибке, что testcontroller не определен. Я копирую большинство файлов, которые показывают путь потока тестирования e2e в рамках. Для Protractor реализован аналогичный фреймворк, поэтому мы хотим продолжить разработку тестов e2e аналогичным образом. Пожалуйста, дайте мне знать, если потребуется дополнительная информация. TestCafe Version - 2.2.0
Файл функции:
@documentManagementTest0
*Scenario: Search Document section validate
Given User is on Document Management Page*
StepDefination:
import { Given, When, Then } from "cucumber";
import page from '../page-objects/documentManagementPO'
import { t } from "testcafe";
Given('User is on Document Management Page', function () {
page.DocumentManagementPO.login(t);
page.DocumentManagementPO.get(t);
});
PageObjectFile:
import { Selector, t, testcafe } from 'testcafe';
import { testData } from '../testData/data.json';
import {Base} from '../support/BasePO';
export default class DocumentManagementPO extends Utils{
async login(t){
await loginTo(t, "tstEnv");
}
async get(t){
await loadApp(t, 'tstApp');
}
UtilsClass
import { Selector, t, testcafe } from 'testcafe';
import { testData } from '../testData/data.json';
export class Base {
async loadApp(t, app) {
const dropdown = Selector("portal-.dropdown:not(.userProfile)");
await t.click(dropdown);
const appElement = Selector('ul > li'+ app);
await t.click(appElement);
}
get loginForm() {
return {
get userId() {
return Selector('[name="UID"]');
},
get password() {
return Selector('[name="PASSWORD"]');
},
get loginButton() {
return Selector('input[type="image"]');
}
};
}
async loginTo(t,testEnv) {
var baseUrl;
if(testEnv === 'tst1'){
baseUrl = testData.tst1;
}
else if(testEnv === 'tst2'){
baseUrl = testData.tst2;
}
else{
baseUrl = testData.DevUrl;
}
await t.navigateTo(baseUrl);
await t.typeText(this.loginForm.userId, testdata.userName);
await t.typeText(this.loginForm.password, testData.password);
await t.click(this.loginForm.loginButton);
}
}