2017-08-03 79 views
0

我正在使用Testcafe上傳文件到我的應用程序,我需要運行命令「npm run test」。目前,我在我的規範腳本中硬編碼了文件路徑。將文件路徑從命令行傳遞到「npm run test」?

我想要實現的是在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

如果您想對多個文件名執行相同的操作,您可以將它們的列表保留在文件中,並在夾具內部或測試內部的循環中使用它。例如,如果在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') 
    }); 
} 
+1

謝謝,它的工作原理很棒! – inSynergy

相關問題