运行detox test
会运行套件中的所有测试。有没有办法运行测试的子集?单个测试文件或单个测试用例。
根据文档,我已将Detox配置为使用Mocha作为测试运行器。我知道Mocha有一个-g
选项来指定运行测试的模式。但传递给detox
命令的选项似乎没有传递给mocha
:
# detox test -g mytestcase
error: unknown option `-g'
我正在尝试使用Detox进行TDD,我可以获得的反馈越快越好。随着我的测试套件的增长,如果运行时间越来越长,我开发测试的动力会越来越小。
答案 0 :(得分:3)
<强>序:
强>
Detox是测试运行器不可知的,你实际上可以使用你想要的测试运行器。我们做的唯一一件事是尝试通过创建detox-cli
来简化开发生活,detox-cli
目前仅适用于mocha和jest,但您可以轻松地将其扩展到任何其他跑步者。
虽然我同意only
的实现并不完美(params不是通过测试跑步者,并且通常需要一些工作),但它很容易在detox-test.js中添加你想要的任何内容。
实际答案:
与此同时,运行单个测试的最快方法是使用describe.only
标记要运行的套件/测试:it.only
和jupyter notebook --no-browser --port=8889
。
答案 1 :(得分:2)
考虑以下代码以运行特定套件
describe.only('App screen', () => {
beforeEach(async () => {
await device.reloadReactNative();
});
在上面的代码中,“仅”将运行整个测试套件。
考虑以下代码以运行特定的测试用例
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");
在上面的代码中,“仅”将运行特定的测试用例。
答案 2 :(得分:2)
编辑:原来您根本不需要-f
标志。
您只需执行detox test /path/to/yourTest.spec.js
,它就可以处理单个文件(已在v14.4.1上测试)。
我最终使用 -f
参数来测试特定测试。
detox test -f /path/to/yourTest.spec.js
从repo穿过它。看起来可能已更新。
答案 3 :(得分:0)
解决方法可能会有所帮助。是否也通过ssh将ssh通道与排毒的ssh通道一起发送到了远程主机?
编写小脚本,然后从“ e2e”文件夹启动它。它将:
删除e2e中的所有测试,然后仅从 “临时测试”并将其放入“ e2e”文件夹并启动。
4(可选),对于每次报告问题的测试,也可以将保存的mocha-report写入另一个文件。
脚本: /////////////////////////////////////////////// rm * .spec.js cd ../run-tests cp 唯一测试名称 ../e2e/ 排毒测试-配置yourapp.initial