r - 被 testthat 和 skip_on_cran() 弄糊涂了
问题描述
tl;博士我想devtools::test()
在一个包上运行并让它跳过测试等,就好像它在 CRAN 上运行一样,但我不知道如何。
据我了解,testthat::skip_on_cran()
检查环境变量,如果测试未在 CRAN 上运行NOT_CRAN
,则应将其设置为“true”值(为了支持这一点,底层测试函数等于testthat:::on_cran()
!identical(Sys.getenv("NOT_CRAN"), "true")
我试图用来skip_on_cran()
跳过一些测试。我想确认这些测试实际上会在 CRAN 上被跳过。我有一条线
cat("ON CRAN:", testthat:::on_cran(), "\n")
在我的测试文件中,以便我可以看到 R/testthat
认为正在发生的事情。
如果我使用,环境变量会按照我想要的方式设置(即输出包括ON CRAN: FALSE
)/测试被正确跳过)
source([testfile], echo = TRUE)
(即,事先没有做任何特殊的设置或取消设置NOT_CRAN
环境变量)或
withr::with_envvar(c(NOT_CRAN = "false"),
devtools::test_active_file("tests/testthat/test-bootMer.R"))
(如果我test_active_file()
不包装就跑,我会得到ON CRAN: FALSE
)。
但是,我看不到以devtools::test()
类似方式运行所有测试(通过)的方法。换句话说,我不知道如何devtools::test()
在“ON CRAN”模式下运行。 test()
对此没有明确的参数(它具有...
“传递给包装函数的附加参数”,但我看不到任何相关的向下挖掘),并且 usingwithr::with_envvar()
似乎没有帮助。devtools::check()
确实有一个明确的env_vars
论点,但我希望能够在不经过整个包检查程序的情况下运行测试......
很抱歉,这不能完全重现;如果需要,我可以尝试构建一个最小的包来显示行为......
解决方案
推荐阅读
- python - 如果它们具有相同的列值,如何更新熊猫的列?
- c++ - 为什么析构函数和复制构造函数会在对象数组中显示这种行为?
- python - 为什么欠拟合?使用 LGBM 回归模型建模时间序列数据
- mysql - 如何从 sqlite Flutter 的离线保存数据同步和保存数据到 mysql(服务器端)?
- visual-studio - 为什么 Visual Studio 中的 64 位项目仍使用 32 位静态库?
- java - Solr 过滤器查询不返回 _s 的结果,但返回 _t
- angular - 如何在 ng carousel 中添加一组新的图像并同时转到下一张幻灯片?
- python-3.x - 如何使用 python 绘制每个波段的直方图,但不使用 cv2.calcHist() 或 np.histogram() 等预定义函数
- marklogic - 内存限制 (MarkLogic)
- powershell-remoting - 如何使用 Powershell 远程从 PRTG 运行脚本以扩展磁盘卷