随着我越来越熟悉 Testcafe,我尝试使用命令行参数为用户提供有关如何运行测试的更多信息。出于这个原因,我正在使用 minimist 包。

但是,我无法打印或使用测试用例之外的任何变量。请在下面找到我的代码。

import { Selector } from 'testcafe'; 
import minimist from 'minimist'; 
 
const args = minimist(process.argv.slice(2)); 
const env = args.env; 
 
console.log('*** A SAMPLE CONSOLE OUTPUT ***'); // does not print 
 
fixture `Getting Started` 
  .page `http://devexpress.github.io/testcafe/example`; 
 
test('My first test', async t => { 
  console.log('*** ANOTHER SAMPLE CONSOLE OUTPUT ***'); // prints 
  await t 
    .typeText('#developer-name', 'John Smith') 
    .wait(1000) 
    .click('#submit-button') 
 
    // Use the assertion to check if the actual header text is equal to the expected one 
    .expect(Selector('#article-header').innerText).eql('Thank you, John Smith!'); 
}); 

我想写一个 if 语句来检查 env === '' 或使用默认参数。

我怎样才能做到这一点?

请您参考如下方法:

However, I cannot print or use any variables outside the test cases.  

请使用编程方式来运行TestCafe。 我已经更改了代码示例 (test.js) 并创建了一个以编程方式运行 TestCafe 的文件 (run.js)。 将这些文件放入一个文件夹中,然后在您的终端中执行命令 'node run.js --env value'。 然后你会看到如下输出:

'*** A SAMPLE CONSOLE OUTPUT ***' 
Getting Started 
value 
test.js 
 
import { Selector } from 'testcafe'; 
import minimist from 'minimist'; 
 
const args = minimist(process.argv.slice(2)); 
const env = args.env; 
 
console.log('*** A SAMPLE CONSOLE OUTPUT ***');  
 
fixture `Getting Started` 
  .page `http://devexpress.github.io/testcafe/example`; 
 
test('My first test', async t => { 
  console.log(env); // prints 
  await t 
    .typeText('#developer-name', 'John Smith') 
    .wait(1000) 
    .click('#submit-button') 
    .expect(Selector('#article-header').innerText).eql('Thank you, John Smith!'); 
}); 
run.js 
const createTestCafe = require('testcafe'); 
let runner           = null; 
 
createTestCafe('localhost', 1337, 1338, void 0, true) 
    .then(testcafe => { 
        runner = testcafe.createRunner(); 
    }) 
    .then(() => { 
         return runner 
            .src('test.js') 
            .browsers('chrome') 
            .run() 
            .then(failedCount => { 
                console.log(`Finished. Count failed tests:${failedCount}`); 
                process.exit(failedCount) 
            }); 
    }) 
    .catch(error => { 
        console.log(error); 
        process.exit(1); 
    }); 


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!