本文介绍了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.

我该怎么做?

推荐答案

请使用编程方式运行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);
    });

这篇关于Testcafe-测试用例之外的测试命令行参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 17:59