Julia Notes8 -- WorkFlow

简单总结:

  1. 用Revise

  2. 建立一个Pkg

  3. REPL做实验, 将好想法合并到到代码

  4. 写test

  5. benchmark

  6. https://docs.julialang.org/en/v1/manual/workflow-tips/

  7. https://github.com/invenia/PkgTemplates.jl

  8. https://timholy.github.io/Revise.jl/stable/

https://syl1.gitbook.io/julia-language-a-concise-tutorial/language-core/11-developing-julia-packages 讲了如何在github上create, documenting, 并最后publish一个package。

https://julia.quantecon.org/more_julia/testing.html 跟前一个类似

tests

  • https://erik-engheim.medium.com/julia-v1-5-testing-best-practices-3ca8780e6336

  • test Pkg

  • 直接julia test/runtests.jl

  • 将tests分散在不同文件, 在test/runtests.jlinclude, 这样可以只run部分测试, 比如通过ARGS指定想测试的部分

  • 将准备工作放在test/setup.jl中, 可以先在REPL中include("test/setup.jl"), 然后copy想测试部分代码到REPL中, 或者通过VSCode的Alt+Enter执行部分代码block

https://medium.com/codex/julia-v1-5-testing-how-to-organize-tests-5f7a76e29038

相比其他语言的tests写法, julia的更灵活, 基本只需要@testset@test就够了, 而且可以随意嵌套、放在for中。 不可变数据的话直接放global就可以了, 可变的可以写成函数, 每次调用函数。

其他的测试比如skip, broken等可以参考https://docs.julialang.org/en/v1/stdlib/Test/