我使用Testcafe将文件上传到我的应用程序,我需要运行命令" npm run test"。目前,我已经在我的规范脚本中对文件路径进行了硬编码。
我想要实现的是使用n个不同的文件在n次循环中运行相同的规范。到目前为止,实现这一目标的唯一方法是为具有不同文件名的n文件编写n-specs,但我不想这样做,因为所有规格都是相同的。
fixture `Getting Started`
.page `http://mywebsite.org`;
test
.before( async t => {
console.log("User Log Tests");
})
('File_Upload', async t => {
await t
.click('.home-search-btn')
.wait(5000)
.click('.menu.icon.large-visibility>ul>li:last-
child>ul>li>.checkbox')
.setFilesToUpload('input[type="file"]', [
'home/name/fileDirectory/file.json',
])
.click('.icon.base-upload')
});
我想知道它是否可以自动化,因此可以从某个目录中读取文件名并替换我的规格。
答案 0 :(得分:2)
如果您想对多个文件名执行相同的操作,可以将它们列在文件中,并在夹具内部或测试内部的循环中使用它。例如,如果files.js
文件中有一个文件路径数组,则可以使用以下方法:
// files.js
export default files = ['file1.json', 'file2.json'];
// test.js
import files from './files.js';
fixture `Getting Started`
.page `http://mywebsite.org`;
for(const file of files) {
test
.before( async t => {
console.log("User Log Tests");
})
(`File_Upload - ${file}`, async t => {
await t
.click('.home-search-btn')
.wait(5000)
.click('.menu.icon.large-visibility>ul>li:last-child>ul>li>.checkbox')
.setFilesToUpload('input[type="file"]', [file])
.click('.icon.base-upload')
});
}