【发布时间】:2016-07-13 20:22:05
【问题描述】:
我想在我的 Elixir 项目中拥有两组独立的单元测试,我可以使用不同的 ExUnit 配置单独运行它们。我正在开发一个 ExUnit 格式化程序,我正在尝试为它编写单元测试它。为了测试它,我想我会创建另一个目录(example_tests),其中包含一个类似于test/ 中的test_helper.exs 文件,但将ExUnit 配置为使用我的自定义格式化程序。我将我的格式化程序添加为 ExUnit 格式化程序,然后创建了一个测试模块 example_tests。现在的问题是我不知道如何配置 ExUnit 以使用 example_tests/test_helper.exs 中指定的配置运行 example_tests/ 中的所有测试。
我发现有一个test_paths 配置参数可以在mix.exs 文件中设置。问题是值是在每个项目的基础上设置的,我需要它有两个不同的值(通常只是["test"],但随后使用格式化程序["example_tests"] 进行测试运行)。我假设我可以在每个任务的基础上覆盖配置值,所以我也创建了一个 example_tests 任务,但我不知道如何更改配置。
有没有办法根据每个任务自定义项目配置 (Mix.Project.config)? 或者,有没有更好的方法来创建具有不同 ExUnit 配置的两组独立测试?
更新:
这里是test Mix 任务的源代码链接:https://github.com/elixir-lang/elixir/blob/master/lib/mix/lib/mix/tasks/test.ex
【问题讨论】:
标签: unit-testing elixir elixir-mix