朱莉娅:对文件的更改重新运行单元测试

时间:2018-10-08 13:41:16

标签: unit-testing julia

当我更改代码时,是否有julia库可以自动运行单元测试?

在Python中,有一个pytest.xdist库,当您对代码进行更改时,该库可以再次运行单元测试。朱莉娅有类似的图书馆吗?

3 个答案:

答案 0 :(得分:2)

如果您使用Github存储库,则可以通过多种方法来设置Travis或Appveyor。这是Julia注册的许多模块所使用的测试方法。您将需要编写单元测试套件(使用using Test)并将其放置在github存储库的/ test子目录中。您可以搜索julia和这些Web服务以获取详细信息。

答案 1 :(得分:2)

可以使用标准库模块FileWatching提出一个简单的解决方案;特别是FileWatching.watch_file。尽管有名称,它也可以与目录一起使用。如果目录发生问题(例如,您在其中保存了文件的新版本),它将返回一个带有字段changed的对象,如果目录已更改,则该字段为true。您当然可以将其与Glob结合使用,以代替观看一组源文件。

您可以在项目环境处于活动状态的情况下运行单独的Julia进程,并使用类似以下内容的东西:

julia> import Pkg; import FileWatching: watch_file

julia> while true
           event = watch_file("src")
           if event.changed
               try
                   Pkg.pkg"test"
               catch err
                   @warn("Error during testing:\n$err")
               end
           end
       end

更复杂的实现是可能的;使用上述方法,您需要使用Ctrl-C中断循环才能中断。但这确实对我有用,并且每当我保存文件时都会愉快地重新运行测试。

答案 2 :(得分:1)

使用标准的GNU Makefile并根据您的用例从各个地方调用它

  • 如果要在启动时检查测试,请使用.juliarc。
  • 如果想让他们定期检查,请联系
  • 在模块的 init 函数内部,用于在每次加载模块时进行检查。

由于GNU makefile自动检测到更改,因此在没有更改的情况下,对make的调用将被静默忽略。