我有一个我在本地开发的 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 也坏了。
最佳答案
当您运行时 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 .
关于Julia 无法测试用户包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60661774/