Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing ExUnit-运行存储在自定义目录中的所有测试(不是tests/)_Unit Testing_Elixir_Elixir Mix - Fatal编程技术网

Unit testing ExUnit-运行存储在自定义目录中的所有测试(不是tests/)

Unit testing ExUnit-运行存储在自定义目录中的所有测试(不是tests/),unit-testing,elixir,elixir-mix,Unit Testing,Elixir,Elixir Mix,我想在Elixir项目中有两组独立的单元测试,可以使用不同的ExUnit配置单独运行。我正在开发ExUnit格式化程序,并尝试为其编写单元测试。为了测试它,我想我应该创建另一个目录(example\u tests),其中包含一个test\u helper.exs文件,该文件与test/中的文件类似,但配置了使用自定义格式化程序的ExUnit。我将我的格式化程序添加为ExUnit格式化程序,然后创建了一个测试模块example\u tests。现在的问题是,我不知道如何配置ExUnit以使用exa

我想在Elixir项目中有两组独立的单元测试,可以使用不同的ExUnit配置单独运行。我正在开发ExUnit格式化程序,并尝试为其编写单元测试。为了测试它,我想我应该创建另一个目录(
example\u tests
),其中包含一个
test\u helper.exs
文件,该文件与
test/
中的文件类似,但配置了使用自定义格式化程序的ExUnit。我将我的格式化程序添加为ExUnit格式化程序,然后创建了一个测试模块
example\u tests
。现在的问题是,我不知道如何配置ExUnit以使用
example\u tests/test\u helper.exs
中指定的配置运行
example\u tests/
中的所有测试

我发现有一个
test\u paths
配置参数,不能在
mix.exs
文件中设置。问题是,该值是基于每个项目设置的,我需要它有两个不同的值(通常只是
[“test”]
,但对于格式化程序的测试运行
[“example_tests”]
)。我假设我可以在每个任务的基础上覆盖配置值,所以我也创建了一个示例_tests任务,但我不知道如何更改配置

是否有一种方法可以根据每个任务定制项目配置(
Mix.project.config
)?
或者,是否有更好的方法创建两组具有不同ExUnit配置的独立测试

更新:


这里是指向
测试
混合任务的源代码的链接:

您可以在
测试路径
中放置多个路径,只要它们都有一个test\u helper.exs文件,当执行给定路径中的测试时,使用该路径的测试助手执行这些测试。因此,
test
下的任何内容都可以使用默认的格式化程序,但是,
example\u test
下的任何内容都可以使用自定义格式化程序运行

您还可以为给定的测试模块运行
setup\u all
回调中的
ExUnit.configure(格式化程序:[MyFormatter])
,以便该模块中的所有测试都使用您的格式化程序,并使用退出时的
回调将其切换回默认值。您可能需要为您的测试设置
async:false
,因为我认为格式化程序配置对于所有测试都是全局的-或者使用moduletag属性(例如
@moduletag:custom\u formatter
)来标记一组测试应该作为哪个组运行,然后使用
mix-test——包括自定义格式化程序
mix-test——排除自定义格式化程序
,只将这些测试作为一个组一起运行。然后使用混合任务别名来简化您的工作(例如,
mix test
使用默认格式设置程序运行测试,
mix test。自定义
使用自定义格式设置程序运行测试

希望其中一个对你来说是一个可行的解决方案