Testcafe - 在测试用例之外测试命令行参数
随着我对 Testcafe 的熟悉,我尝试使用命令行参数为用户提供有关如何运行测试的更多信息.出于这个原因,我正在使用 minimist
包.
As I'm getting familiar with Testcafe, I'm trying to use a command line argument to give the user more information on how to run tests. For that reason, I'm using the minimist
package.
但是,我无法打印或使用测试用例之外的任何变量.请在下面找到我的代码.
However, I cannot print or use any variables outside the test cases. Please find below my code.
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 === ''
或使用默认参数.
I want to write an if statement that checks if env === ''
or use a default argument.
我怎样才能做到这一点?
How can I accomplish this?
推荐答案
但是,我无法打印或使用测试用例之外的任何变量.
However, I cannot print or use any variables outside the test cases.
请使用编程方式运行TestCafe.我已经更改了您的代码示例 (test.js
) 并创建了一个以编程方式运行 TestCafe 的文件 (run.js
).将这些文件放入文件夹并在终端中执行命令 'node run.js --env value'
.然后你会看到如下输出:
Please use a programming way to run TestCafe.
I've changed you code example (test.js
) and created a file that runs TestCafe programmatically (run.js
).
Put these files into a folder and perform command 'node run.js --env value'
in your terminal.
Then you will see the following output:
'*** 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);
});
相关文章