如何使用grep或等效工具,使用R的testthat库仅自动测试选定的测试?

如何使用grep或等效工具,使用R的testthat库仅自动测试选定的测试?,r,testthat,R,Testthat,如何在“自动”模式下运行testthat,以便在编辑R文件夹中的文件时,只重新运行特定的测试 我有很多测试,有些测试比其他测试慢。我需要能够运行特定的测试,否则我将等待长达15分钟的测试套件完成。我想让测试套件更快,但现在这不是一个现实的选择 理想情况下,我希望指定一个grep表达式来选择我想要的测试。在JavaScript世界中,两者都支持按名称或文件进行grepping以选择测试 或者,我可以直接指定一个文件——只要我可以使用自动测试支持 以下是到目前为止我在测试中发现的: testthat

如何在“自动”模式下运行testthat,以便在编辑R文件夹中的文件时,只重新运行特定的测试

我有很多测试,有些测试比其他测试慢。我需要能够运行特定的测试,否则我将等待长达15分钟的测试套件完成。我想让测试套件更快,但现在这不是一个现实的选择

理想情况下,我希望指定一个grep表达式来选择我想要的测试。在JavaScript世界中,两者都支持按名称或文件进行grepping以选择测试

或者,我可以直接指定一个文件——只要我可以使用自动测试支持

以下是到目前为止我在测试中发现的:

testthat::auto_test_包首先运行所有内容,但只有在编辑特定测试文件时才重新运行该测试文件。但是,如果编辑R文件夹中的任何代码,它将重新运行所有测试。 testthat::auto_test接受指向要测试的测试文件目录的路径。但是,如果要使用devtools::test或testthat::auto_test_包,testthat似乎不支持将测试放入不同的子目录。我错过什么了吗? testthat::test_文件可以从一个文件运行测试,但它不支持使用更改自动重新运行测试。 testthat::test_dir有一个filter参数,但它只过滤文件,不过滤测试;它也不支持自动重新运行测试 版本:

R:3.6.2 2019-12-12 测试结果:2.3.1 补遗 我创建了一个简单的回购协议来演示这个问题:

如果打开该窗口,请运行:

renv::restore()
testthat::auto_test_package()
这需要很长时间,因为其中一个测试很慢。如果我正在进行其他测试,我希望跳过慢测试,只运行我选择的测试。Grepping for tests是测试工具的一个标准特性,所以我相信R一定有办法。testthat::test_dir有一个过滤选项来过滤文件,但是如何过滤测试名称,以及如何使用auto_test_包进行过滤?我就是找不到

在R中,您是如何做到这一点的:

testthat::auto_test_package(filter = 'double_it')
并让它运行:

双_it2==4 双_it3==6 但不是

努力工作回报“哇”
谢谢

如果您包含一个简单的示例输入和所需的输出,可以用来测试和验证可能的解决方案,这将更容易为您提供帮助。使用演示存储库进行更新。这就是多个测试文件的用途,但如何自动测试所选的测试文件?