12

Runningdetox test运行套件中的所有测试。有没有办法运行测试的子集?单个测试文件或单个测试用例。

根据文档,我已将 Detox 配置为使用 Mocha 作为测试运行器。我知道 Mocha 可以-g选择指定运行测试的模式。但是传递给detox命令的选项似乎没有传递给mocha

# detox test -g mytestcase

error: unknown option `-g'

我正在尝试将 Detox 用于 TDD,而且我获得的反馈越快越好。随着我的测试套件的增长,如果运行时间越来越长,那么随着我的开发,运行测试的动力就会越来越小。

4

4 回答 4

15

编辑:原来你根本不需要-f标志。

你可以这样做detox test /path/to/yourTest.spec.js,它适用于单个文件(在 v14.4.1 上测试)。

来源

我最终使用该-f参数来测试特定测试。

detox test -f /path/to/yourTest.spec.js

回购中发现它。看起来它可能已经更新了。

于 2019-10-11T15:54:08.180 回答
5

前言:
Detox 与测试运行程序无关,您实际上可以使用您想要的任何测试运行程序。我们所做的唯一一件事就是尝试通过创建来简化开发人员的生活detox-cli,目前它仅适用于 mocha 和 jest,但您可以轻松地将其扩展到任何其他运行程序。虽然我同意 的实现detox-cli并不完美(参数没有从测试运行器传递,通常需要一些工作),但在detox-test.js中添加你想要的任何东西都很容易。

实际答案:
与此同时,运行单个测试的最快方法是使用onlyto 标记您要运行的套件/测试:describe.onlyit.only.

于 2018-02-11T11:23:24.107 回答
2

考虑以下代码以运行特定套件

describe.only('App screen', () => {
    beforeEach(async () => {
        await device.reloadReactNative();
    });

在上面的代码中,“Only”将运行整个测试套件。

考虑以下代码来运行特定的测试用例

it.only('should write into TextInputs', async () => {
            await element(by.id("input")).typeText("Detox Automation POC-Test for enter text and delete text");
            await element(by.id("input")).clearText();
            await element(by.id("input")).replaceText("Bye");

在上面的代码中,“Only”将运行特定的测试用例。

于 2018-09-19T15:52:25.410 回答
1

解决方法可能会有所帮助。是否还通过 ssh 将 ssh-channel 用于通过 ssh 排毒的远程主机:

  1. 在同一文件夹结构级别上为测试创建另一个文件夹(不是 e2e,fE “temp-tests”)。
  2. 将所有测试复制到临时测试
  3. 编写小脚本并从“e2e”文件夹启动它。它会 :

    删除 e2e 中的所有测试,然后将只从“temp-tests”中进行一项测试并将其放入“e2e”文件夹并启动它。

4(可选)也可以将 mocha-report 的保存写入另一个文件,以便为每个测试报告问题。

脚本:////////////////////////////////////rm *.spec .js cd ../run-tests cp unique-testname ../e2e/ detox test --configuration yourapp.initial

于 2019-03-06T18:01:19.953 回答