【问题标题】:How to implement some command before ExUnit test with some tag starts如何在带有某些标签的 ExUnit 测试开始之前执行某些命令
【发布时间】:2016-09-20 14:47:47
【问题描述】:

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

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

  1. 用一些标签标记所有小袋鼠测试,即:@tag :wallaby
  2. 检查是否存在至少一个被小袋鼠测试标记的运行测试套件
  3. 如果是这样,请等待构建,然后运行整个测试套件。

这是最好的设计吗?如何实现?

【问题讨论】:

  • “我怎样才能实现它?”——这不是这里要问的问题。

标签: elixir phoenix-framework ex-unit


【解决方案1】:

根据"Test Pyramid",您不应该有很多 UI 测试,并且应该很少运行它们,因为它们既慢又昂贵。

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

ExUnit.configure exclude: [:wallaby]

现在运行 mix test 将不会运行任何 UI 测试,直到您使用 --include 运行它:

mix test --include wallaby

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多