运行 在使用之前的每个灯具之前设置
Run setup before each fixture using before
我想 运行 在每个 fixture 之前使用 testcafe 的 before 函数
一个 fixture 或一组 testController 方法
fixture我想运行在每个fixture之前提取到一个单独的函数
// testSetup.ts
export async function initialiseTestEnv(t: testController) {
console.log("Initialise working env");
const docNameInput = Selector('input#documentName');
const createBtn = Selector('button.ui.primary.button');
await t
.useRole(roles.adminUser)
.maximizeWindow()
.navigateTo(testConfig.standardListPage)
.typeText(docNameInput, testConfig.repoName)
.click(createBtn);
我想 运行 在每个固定装置之前这样做:
// tests.ts
// Tests that rely on env init
fixture `Tests that rely on init event`
.before(async t => {
await initialiseTestEnv(t)
})
.requestHooks(logger)
.beforeEach(async t => {
cookies.setCookies;
await t
.useRole(roles.adminUser)
})
test('Test that relies on test env init', async t => {...}
问题是之前没有我可以解析到 init 函数的测试控制器。有没有另一种方法可以 运行 在每个固定装置之前 运行 这个初始化事件(我不想 运行 在每次测试之前,就在固定装置之前)
你可以这样做:
let alreadyRun = false;
fixture `Tests that rely on init event`
.beforeEach(async t => {
if (!alreadyRun) {
await initialiseTestEnv(t);
alreadyRun = true;
}
})
我认为这个问题已发布在 TestCafe GitHub 页面的某处,因此在未来的版本中可能会提供更好的解决方案。但是您可以使用变量和 beforeEach
挂钩轻松实现它。
我想 运行 在每个 fixture 之前使用 testcafe 的 before 函数
一个 fixture 或一组 testController 方法fixture我想运行在每个fixture之前提取到一个单独的函数
// testSetup.ts
export async function initialiseTestEnv(t: testController) {
console.log("Initialise working env");
const docNameInput = Selector('input#documentName');
const createBtn = Selector('button.ui.primary.button');
await t
.useRole(roles.adminUser)
.maximizeWindow()
.navigateTo(testConfig.standardListPage)
.typeText(docNameInput, testConfig.repoName)
.click(createBtn);
我想 运行 在每个固定装置之前这样做:
// tests.ts
// Tests that rely on env init
fixture `Tests that rely on init event`
.before(async t => {
await initialiseTestEnv(t)
})
.requestHooks(logger)
.beforeEach(async t => {
cookies.setCookies;
await t
.useRole(roles.adminUser)
})
test('Test that relies on test env init', async t => {...}
问题是之前没有我可以解析到 init 函数的测试控制器。有没有另一种方法可以 运行 在每个固定装置之前 运行 这个初始化事件(我不想 运行 在每次测试之前,就在固定装置之前)
你可以这样做:
let alreadyRun = false;
fixture `Tests that rely on init event`
.beforeEach(async t => {
if (!alreadyRun) {
await initialiseTestEnv(t);
alreadyRun = true;
}
})
我认为这个问题已发布在 TestCafe GitHub 页面的某处,因此在未来的版本中可能会提供更好的解决方案。但是您可以使用变量和 beforeEach
挂钩轻松实现它。