【发布时间】:2019-11-02 12:47:09
【问题描述】:
我的常见问题解答页面中的展开元素很少,因此我想测试所有这些元素。
在foreach 部分中编写我的夹具和/或测试时,终端反映了一个错误
ERROR no test to run.我不明白为什么
我尝试将唯一的测试包装在foreach 和所有的fixture 中,结果是一样的。
fixture('check FAQ expand items').page(URL.local.faq)//.meta({ status: 'indev' })
.beforeEach(async () => {await waitForReact();
})
.before(async t => {
await waitForReact();
await list();
}).only;
faqItems.forEach( (element) => {
test(`check that ${element.getReact(({key})=>key)} is present`, async t => {
await t.expect(element.find('[expanded={true]]').exists).ok();
});
});
我希望测试咖啡馆会在“检查常见问题解答扩展项目”夹具中运行 faqItems.length 数量的测试
我使用命令 testcafe chrome faq.test.ts 运行测试
screen shot of run test result
更新
let faqItems: Array<Selector> = [faq.item];
async function list() {
const count = await faq.item.count;
console.log(`count = ${count}`)
for (let i = 0; i < count; i++) {
await faqItems.push( await faq.item.nth(i));
console.log(await faqItems[i].getReact(({key})=> key));
}
}
fixture('check FAQ expand items').page(URL.local.faq)//.meta({ status: 'indev' })
.beforeEach(async () => {
await waitForReact();
await list();
})
faqItems.forEach((element)=>{
test(`check that ${element.getReact(({key})=>key)} is present`, async t => {
await t.expect(element.find('[expanded={true}]').exists).ok();
});
})
【问题讨论】:
-
乍一看,我在这里看不到任何错误。您能否提供一个示例来演示我的机器上的问题?此外,指定用于运行 TestCafe 测试的命令和您的 TestCafe 版本。
-
我更新了主题,请检查。 Testcafe 版本是 1.2.0
-
正如我在您的代码中看到的,
faqItems变量被初始化为一个空数组。所以没有找到测试。我没有看到list函数的完整代码,也不知道它的作用。如果您在beforeHook的list函数内填充faqItems,则位置不正确。faqItems变量应该在fixture定义之前同步填充。 -
是的,你是对的。看起来很神奇,如果我用第一个元素初始化数组,我的填充数组的方法效果很好。在输出中,我可以看到第一个元素存储到数组两次
-
我根据您的提示更新了主题。我不明白为什么它在空初始化的情况下不起作用
标签: typescript automated-tests e2e-testing testcafe data-driven-tests