Julia无法测试用户软件包

时间:2020-03-12 20:57:08

标签: julia

我有一个本地开发的Julia软件包,我们将其称为mypack,但是我无法在pkg模式下使用Julia自动测试它。运行pkg>test mypack会给我以下错误:

(v1.3) pkg> test mypack
  Updating registry at `~/.julia/environments/v1.3/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Testing mypack
 Resolving package versions...
[ Info: No changes
    Status `/tmp/jl_m6URie/Manifest.toml`
  [4e168b6d] mypack v0.1.0 [`~/Documents/mypack`]
ERROR: LoadError: ArgumentError: Package Test not found in current path:
- Run `import Pkg; Pkg.add("Test")` to install the Test package.

Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:887
 [2] include at ./boot.jl:328 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1105
 [4] include(::Module, ::String) at ./Base.jl:31
 [5] include(::String) at ./client.jl:424
 [6] top-level scope at none:6
in expression starting at /home/myname/Documents/mypack/test/runtests.jl:1
ERROR: Package mypack errored during testing

我的mypack项目具有预期的结构,其中有一个包含Project.tomlManifest.toml的根目录,该目录是使用]generate mypack生成的。 /test/runtests.jl只是行

using Test

这可以在我测试过的两台机器上运行,其中一台使用Julia 1.1,另一台使用Julia 1.2。错误是在新安装的Julia 1.3上发生的。

我能够测试其他软件包(例如,Statistics可以确保Test正常工作)。我有一个更复杂的项目引起了我的注意,但是此mypack MWE也已损坏。

1 个答案:

答案 0 :(得分:4)

运行Pkg.test时,Pkg将创建一个测试环境。此环境由直接依赖项和测试依赖项组成。 test/runtests.jl导入的任何依赖项都必须在此测试环境中。

由于您的test/runtests.jl导入了Test标准库,因此需要将其添加为测试依赖项。您可以使用以下方法添加测试依赖项:https://julialang.github.io/Pkg.jl/v1/creating-packages/#Test-specific-dependencies-in-Julia-1.0-and-1.1-1