我正在使用testthat
来检查我的程序包中的代码。其中一些测试是针对基本功能,如构造函数和访问器的。另一些测试则是针对在基本功能之上构建的复杂功能。如果基本测试失败,则预期复杂测试也会失败,因此没有继续测试的必要。
是否可以:
- 确保先执行基本测试
- 使测试失败引起测试过程停止
我正在使用testthat
来检查我的程序包中的代码。其中一些测试是针对基本功能,如构造函数和访问器的。另一些测试则是针对在基本功能之上构建的复杂功能。如果基本测试失败,则预期复杂测试也会失败,因此没有继续测试的必要。
是否可以:
test-*.R
文件,否则我认为无法确定。testthat
的源代码中,这是通过test_dir调用test_package的函数来获取测试的:find_test_scripts <- function(path, filter = NULL, invert = FALSE, ...) {
files <- dir(path, "^test.*\\.[rR]$", full.names = TRUE)
让复杂的任务先失败有什么问题呢?
关于测试顺序,您可以使用 DESCRIPTION 文件中的 testthat 配置来确定测试顺序(按文件)- 正如文档所建议的那样
默认情况下,testthat 按字母顺序启动测试文件。如果您有一些比其他测试文件需要更长时间的测试文件,则这可能不是最佳顺序。理想情况下,应该首先启动较慢的文件,因为整个测试套件将至少花费与其最慢的测试文件相同的时间。您可以使用 DESCRIPTION 中的 Config/testthat/start-first 选项更改顺序。例如,testthat 目前具有:
Config/testthat/start-first: watcher, parallel*