【问题标题】:R Unit Test using devtools::test() executes source code instead of test cases使用 devtools::test() 的 R 单元测试执行源代码而不是测试用例
【发布时间】:2019-03-08 08:03:27
【问题描述】:

我是 R 新手,在通过 devtools::test() 获取 testthat 单元测试包工作时遇到了一些麻烦。

我已经设置了一个包并在 .\tests\testthat 文件夹下创建了一个测试用例。我的 R 源代码文件位于 .\R.

当我跑步时:

testthat::test_dir("./tests/testthat/")

测试运行成功。

但是当我尝试通过

运行测试时
devtools::test()

它没有运行测试用例,而是尝试运行位于 .\R 下的我的源代码文件。

我怎样才能让 devtools::test() 只运行我的测试用例?

感谢您的帮助。

顺便说一句,关于如何设置和使用 testthat 的文档很少,这对于新的 R 用户来说非常令人沮丧。

【问题讨论】:

    标签: r unit-testing devtools testthat


    【解决方案1】:

    test()(重新)在运行测试之前加载你的包。这就是为什么你会看到你的包源代码正在被执行。

    【讨论】:

    • 由于我的源 R 文件不仅仅是函数库,而且一些包含代码的文件将在获取时直接运行。有没有办法阻止 devtools::test() 获取文件?
    • 你的评论没有任何意义
    • 对不起,如果我的评论让您感到困惑。我还是 R 新手。我想说的是在我的一些 R 源文件中,当它们被获取时,它会触发一些任务直接运行。我不希望在调用 devtools::test() 时发生这种情况。我只希望 devtools::test() 在 testthat 下运行我的测试用例。
    • 嗨@Allen,在您的情况下,我认为您可以将这些 R 脚本放在其他地方。仅将函数放在./R 目录中。
    猜你喜欢
    • 2015-03-06
    • 2012-09-03
    • 2021-05-09
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多