我有一个本地开发的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.toml
和Manifest.toml
的根目录,该目录是使用]generate mypack
生成的。 /test/runtests.jl
只是行
using Test
这可以在我测试过的两台机器上运行,其中一台使用Julia 1.1,另一台使用Julia 1.2。错误是在新安装的Julia 1.3上发生的。
我能够测试其他软件包(例如,Statistics
可以确保Test
正常工作)。我有一个更复杂的项目引起了我的注意,但是此mypack
MWE也已损坏。
答案 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。