【问题标题】:Error in x[[method]](...) : attempt to apply non-function in testthat test when sourcing filex[[method]](...) 中的错误:在获取文件时尝试在 testthat 测试中应用非功能
【发布时间】:2018-10-09 13:06:05
【问题描述】:

我正在开发一个 R 应用程序,并想出了一个解决方法,通过将 DESCRIPTION 文件添加到项目根目录来将 testthat 集成到其中(它通常要求您的项目是一个包)。

我从一位同事那里得到了这个方法,他设法让它像这样工作。

问题是,当我尝试测试任何东西(甚至是空的测试文件)时,我得到了这个错误:

Error in x[[method]](...) : attempt to apply non-function
Calls: <Anonymous> ... <Anonymous> -> o_apply -> lapply -> FUN -> <Anonymous>
Execution halted

据我所知,这出现在 macOS 上。我的同事仍然可以在 Windows 上毫无问题地运行此应用程序。

这是怎么回事?

用于重现此错误的MCVE 将是:

  • 创建一个包含内容的最小DESCRIPTION 文件:

    Package: testpckg
    
  • 将 testthat 添加到您的项目中:

    usethis::use_testthat()
    usethis::use_test("foo")
    
  • 创建空文件bar.R
  • test-foo.R,来源栏:source("bar.R")

RStudio 版本 1.1.447, R 版本 3.4.4,Mac OS X 10_13_4

【问题讨论】:

  • 你能发布你正在运行的引发错误的代码吗?
  • 我使用了很多文件,所以在一个新的、干净的项目中更容易重现错误。我编辑了描述。
  • 很遗憾,我无法在我的 macbook 上重现此内容。
  • 我也有同样的问题。你解决了你的问题吗? (一位同事运行相同的代码没有这个问题!)
  • 查看我对下面答案的编辑...

标签: r testthat


【解决方案1】:

这似乎是由于testthat 2.0.0 中的错误造成的。将context("Name of test context") 添加到top of each test file 对我有用(使用Ubuntu 和Windows 测试)。

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2014-09-09
    • 2015-10-11
    • 2021-01-08
    相关资源
    最近更新 更多