【问题标题】:Testcafe - Filtering on Tests works from Command Line but not from runnerTestcafe - 过滤测试从命令行工作,但不是从跑步者
【发布时间】:2021-08-06 20:15:14
【问题描述】:

我实际上是在尝试使用测试运行程序文件从该文件中找出我的所有配置。我正在使用 Smoke 和 Regression 脚本的测试。所以,我希望我的测试基于我从 tet 运行器文件中选择的 Smoke 或功能测试元数据运行。当我提供 package.json 文件时,过滤器起作用。但它不适用于使用 runner.filter 的测试运行程序文件

如果有人知道原因,请提供帮助。

下面是 Test.js 文件中的 sn-p,

test.meta('smokeTest','true)('Testing application as admin', async t=> {
await t.click(elements.submitButton);
})

而 test-runner 文件是,

const createTestCafe = require('testcafe');

try {
    const runner = testcafe.createRunner();

    const failedCount = await runner
        .src('./tests/fixture1.js')
        .filter(testMeta => {return testMeta.smokeTest === 'true';})
        .browsers('chrome')
        .run();

    console.log('Tests failed: ' + failedCount);
}
finally {
    await testcafe.close();
}

当我们从命令行运行过滤器时,过滤器会起作用,

testcafe chrome ./tests/fixture1.js --test-meta smokeTest=true

当我使用 test-runner 文件时,它说 过滤器设置已排除所有测试,请尝试修改设置

【问题讨论】:

标签: testing filter metadata testcafe fixtures


【解决方案1】:

根据the documentation,您需要通过以下方式指定您的过滤器回调参数:function(testName, fixtureName, fixturePath, testMeta, fixtureMeta)。您的.filter 应改写如下:

.filter((testName, fixtureName, fixturePath, testMeta, fixtureMeta) => testMeta.smokeTest === 'true')

【讨论】:

  • 太棒了!那真的奏效了。谢谢你的帮助!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 2011-05-11
  • 2011-12-29
  • 2010-11-30
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多