将一组文件路径从命令行传递到on" npm run test"?

时间:2017-08-03 18:29:53

标签: node.js testing npm testcafe

我使用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')
    });

我想知道它是否可以自动化,因此可以从某个目录中读取文件名并替换我的规格。

1 个答案:

答案 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')
    });
}