Юлия не может проверить пользовательские пакеты - PullRequest
3 голосов
/ 12 марта 2020

У меня есть пакет Julia, который я разработал локально, назовем его mypack, и я не могу автоматически протестировать его с Джулией в режиме pkg. Запуск 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 проект имеет ожидаемую структуру, в которой есть каталог root с Project.toml и Manifest.toml, сгенерированными с использованием ]generate mypack. /test/runtests.jl - это просто строка

using Test

Это работает на двух машинах, на которых я тестировал, одна из которых использовала Julia 1.1, а другая - Julia 1.2. Ошибки возникают при новой установке Julia 1.3.

Я могу протестировать другие пакеты (например, Statistics, отлично, что я сделал, чтобы убедиться, что Test работает). У меня есть более сложный проект, который привлек мое внимание, но этот mypack MWE также не работает.

1 Ответ

4 голосов
/ 13 марта 2020

Когда вы запускаете Pkg.test, Pkg создает тестовую среду. Эта среда состоит из прямых и тестовых зависимостей. Любая зависимость, которая импортируется test/runtests.jl, должна находиться в этой тестовой среде.

Поскольку ваша test/runtests.jl импортирует стандартную библиотеку Test, вам необходимо добавить ее в качестве тестовой зависимости. Вы можете добавить тестовые зависимости, используя этот метод: https://julialang.github.io/Pkg.jl/v1/creating-packages/#Test -specifi c -dependencies-in-Julia-1.0-and-1.1-1 .

...