testthat (& Catch) 在 R CMD 中抱怨检查是否缺少 xml2 库
testthat (& Catch) complains in R CMD check that xml2 library is missing
我正在使用 testthat 测试我的 R 包 (https://github.com/beerda/hexmatrix)。最近,我开始了 C++ 测试:我执行了 testthat::use_catch()
,它应该使用 C++ Catch 设置单元测试包,然后我写了一些测试。如果由 devtools::test()
执行,则测试 运行 正确。但是,如果我尝试 运行 R CMD check
或 devtools::check()
,我会收到以下错误消息:
Running ‘testthat.R’ (1.8s)
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
> test_check("hexmatrix")
── Error (test-cpp.R:1:1): (code run outside of `test_that()`) ─────────────────
Error: The xml2 package must be installed in order to use `run_cpp_tests()`
ℹ Do you need to run `install.packages('xml2')`?
Backtrace:
█
1. └─testthat::run_cpp_tests("hexmatrix") test-cpp.R:1:0
2. └─testthat:::check_installed("xml2", "run_cpp_tests()")
══ testthat results ═══════════════════════════════════════════════════════════
Error (test-cpp.R:1:1): (code run outside of `test_that()`)
[ FAIL 1 | WARN 0 | SKIP 0 | PASS 909 ]
Error: Test failures
Execution halted
安装了 xml2 包,rlang::check_installed("xml2") returns 正确。
不确定它是否以某种方式连接:当我尝试手动执行命令 run_cpp_tests("hexmatrix")
时,出现以下错误:
Error in read_xml.raw(charToRaw(enc2utf8(x)), "UTF-8", ..., as_html = as_html, :
XML declaration allowed only at the start of the document [64]
请问有人知道出了什么问题吗?提前谢谢。
通过将 xml2
添加到包的 DESCRIPTION
文件的 Suggests
部分,问题似乎得到了解决。
这不应该是一个 testthat 依赖关系,因为您没有明确使用库 xml2 吗?
我正在使用 testthat 测试我的 R 包 (https://github.com/beerda/hexmatrix)。最近,我开始了 C++ 测试:我执行了 testthat::use_catch()
,它应该使用 C++ Catch 设置单元测试包,然后我写了一些测试。如果由 devtools::test()
执行,则测试 运行 正确。但是,如果我尝试 运行 R CMD check
或 devtools::check()
,我会收到以下错误消息:
Running ‘testthat.R’ (1.8s)
Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
> test_check("hexmatrix")
── Error (test-cpp.R:1:1): (code run outside of `test_that()`) ─────────────────
Error: The xml2 package must be installed in order to use `run_cpp_tests()`
ℹ Do you need to run `install.packages('xml2')`?
Backtrace:
█
1. └─testthat::run_cpp_tests("hexmatrix") test-cpp.R:1:0
2. └─testthat:::check_installed("xml2", "run_cpp_tests()")
══ testthat results ═══════════════════════════════════════════════════════════
Error (test-cpp.R:1:1): (code run outside of `test_that()`)
[ FAIL 1 | WARN 0 | SKIP 0 | PASS 909 ]
Error: Test failures
Execution halted
安装了 xml2 包,rlang::check_installed("xml2") returns 正确。
不确定它是否以某种方式连接:当我尝试手动执行命令 run_cpp_tests("hexmatrix")
时,出现以下错误:
Error in read_xml.raw(charToRaw(enc2utf8(x)), "UTF-8", ..., as_html = as_html, :
XML declaration allowed only at the start of the document [64]
请问有人知道出了什么问题吗?提前谢谢。
通过将 xml2
添加到包的 DESCRIPTION
文件的 Suggests
部分,问题似乎得到了解决。
这不应该是一个 testthat 依赖关系,因为您没有明确使用库 xml2 吗?