如何在ExUnit测试之前使用某些标记启动一些命令

时间:2016-09-20 02:47:44

标签: elixir phoenix-framework ex-unit

我有一个使用wallaby库的测试套件,需要重量级的webpack构建才能使用。问题是我这个webpack构建太重了,不能在模型测试之前使用它,例如。

所以,我决定使用这个功能:

  1. 使用某些标记标记所有小袋鼠测试,即:@tag :wallaby
  2. 检查是否存在至少一个用于运行测试套件的小袋鼠测试标记
  3. 如果是,请等待构建,然后运行整个测试套件。
  4. 这是最好的设计吗?我该如何实施呢?

1 个答案:

答案 0 :(得分:0)

根据"Test Pyramid"你不应该进行很多UI测试,你应该很少运行它们,因为它们很慢且很昂贵。

一种方法是将wallaby标记从单位测试中排除,方法是将其添加到test_helpers

ExUnit.configure exclude: [:wallaby]

现在运行mix test在运行--include之前不会运行任何UI测试:

mix test --include wallaby

这种方法比wallaby标记之前的钩子更好,因为它是显式的,开发人员不会对长时间运行的构建和集成测试感到惊讶。

mix.exs中添加混合别名也可能是个好主意,它会启动webpack构建并运行小袋鼠测试。它将是可以在CI中使用的单个命令。