如何让Julia在我的项目目录中创建./test/runtests.jl

时间:2019-10-22 22:38:58

标签: julia

如何让Julia终端自动生成./test/runtests.jl?

(我目前在MacOS上使用的是Julia v1.2.0)

我尝试过的事情:

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

当我在shell脚本中键入树时,。/ test目录中没有runtests.jl Julia文件。

我不知道为什么。

我跟进了Julia教程:https://julialang.github.io/Pkg.jl/v1/creating-packages/index.html

但这没用。

2 个答案:

答案 0 :(得分:3)

使用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遥控器。

但是它可以做的更多。 我至少会:

  • 包括作者和许可
  • 打开TravisCI进行自动测试运行
  • 设置工作服以报告覆盖率指标
  • 为Documenter.jl文档设置GitHubPages; 所以我倾向于使用类似的东西:
template = Template(;
   user="myusername",
   license="MIT",
   authors=["Lyndon White"],
   dir=".",
   julia_version=v"1.0",
   plugins=[
       TravisCI(),
       Coveralls(),
       GitHubPages(),
   ],
)

答案 1 :(得分:0)

@furas是正确的。您需要自己创建./test/runtests.jl文件。当您在包管理器中使用generate命令时,它是自动创建的。