Как позволить Юлии создать ./test/runtests.jl в каталоге моего проекта - PullRequest
2 голосов
/ 23 октября 2019

Как разрешить терминалу Julia автоматически генерировать ./test/runtests.jl?

(в настоящее время я использую Julia v1.2.0 в MacOS)

Что я пробовал:

shell> ls
Manifest.toml       Project.toml        src
NewtonRootFinding.ipynb SecantRootFinding.ipynb

shell> cat test/runtest.jl
cat: test/runtest.jl: No such file or directory

(v1.2) pkg> status
    Status `~/.julia/environments/v1.2/Project.toml`
  [7073ff75] IJulia v1.20.0
  [438e738f] PyCall v1.91.2
  [d330b81b] PyPlot v2.8.2

(Prob1) pkg> activate ./test
Activating new environment at `~/..../Prob1/test/Project.toml`

shell> ls
Manifest.toml       Project.toml        src
NewtonRootFinding.ipynb SecantRootFinding.ipynb

(test) pkg> status
    Status `~/.../Prob1/test/Project.toml`
  (empty environment)

(test) pkg> add Test
 Resolving package versions...
  Updating `~/.../Prob1/test/Project.toml`
  [8dfed614] + Test 
  Updating `~/.../Prob1/test/Manifest.toml`
  [2a0f44e3] + Base64 
  [8ba89e20] + Distributed 
  [b77e0a4c] + InteractiveUtils 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [9a3f8284] + Random 
  [9e88b42a] + Serialization 
  [6462fe0b] + Sockets 
  [8dfed614] + Test 

(test) pkg> status
    Status `~/.../test/Project.toml`
  [8dfed614] Test 

(test) pkg> activate .
Activating environment at `~/.../Prob1/Project.toml`

(Prob1) pkg> status
Project Prob1 v0.1.0
    Status `~/.../Prob1/Project.toml`
  [7073ff75] IJulia v1.20.0
  [438e738f] PyCall v1.91.2
  [d330b81b] PyPlot v2.8.2
  [8dfed614] Test 

(Prob1) pkg> activate ./test
Activating environment at `~/.../Prob1/test/Project.toml`

shell> cat test/runtests.jl
cat: test/runtests.jl: No such file or directory


shell> tree .
.
├── Manifest.toml
├── NewtonRootFinding.ipynb
├── Project.toml
├── SecantRootFinding.ipynb
├── src
│   └── Prob1.jl
└── test
    ├── Manifest.toml
    └── Project.toml

Когда я набираю дерево в сценариях оболочки, появляетсянет runtests.jl Файл Джулии в каталоге ./test.

Не знаю почему.

Я продолжил обучение Джулии: https://julialang.github.io/Pkg.jl/v1/creating-packages/index.html

Но этоне работал.

Ответы [ 2 ]

3 голосов
/ 23 октября 2019

Использование PkgTemplates.jl

На самом деле рекомендуется в последней версии Pkg.jl docs , но работает со всеми версиями Julia.

Примечание

Пакет PkgTemplates предлагает очень простой, воспроизводимый и настраиваемый способ создания файлов для нового пакета. Мы рекомендуем использовать PkgTemplates для создания новых пакетов вместо использования минимальной функциональности pkg> generate, описанной ниже.

По-моему, почти единственными разработчиками Julia, которые не используют его, являются те, которые не используют его. знать об этом. (Надеюсь, этот пост поможет)

Вот очень простой пример с простым шаблоном.

using PkgTemplates;
template = Template(; user="oxinabox", dir=".");
generate("MyNewPackage", template);

Обратите внимание, что он создает файл runtests.jl:

shell> ls ./MyNewPackage/test/
runtests.jl

Он также настраивает git remotes.

Но он может сделать намного больше. Я хотел бы по крайней мере:

  • Включить автора и лицензию
  • включить TravisCI для автоматического запуска теста
  • Настройка Coveralls для отчета о показателях покрытия
  • setupGitHubPages для документации Documenter.jl;поэтому я склонен использовать что-то вроде:
template = Template(;
   user="myusername",
   license="MIT",
   authors=["Lyndon White"],
   dir=".",
   julia_version=v"1.0",
   plugins=[
       TravisCI(),
       Coveralls(),
       GitHubPages(),
   ],
)
0 голосов
/ 23 октября 2019

@ фурас это правильно. Вам нужно создать файл ./test/runtests.jl самостоятельно. Он не создается автоматически при использовании команды generate в менеджере пакетов.

...