我有一个测试套件,它使用wallaby
需要重量级 webpack 构建才能使用的库。问题是我这个 webpack 构建太重,无法在仅模型测试之前使用它,例如。
所以,我决定使用这个功能:
- 用一些标签标记所有小袋鼠测试,即:
@tag :wallaby
- 检查是否存在至少一个被小袋鼠测试标记的用于运行测试套件的测试
- 如果是这样,请等待构建,然后运行整个测试套件。
这是最好的设计吗?我该如何实施?
我有一个测试套件,它使用wallaby
需要重量级 webpack 构建才能使用的库。问题是我这个 webpack 构建太重,无法在仅模型测试之前使用它,例如。
所以,我决定使用这个功能:
@tag :wallaby
这是最好的设计吗?我该如何实施?
根据“测试金字塔”,你不应该有很多 UI 测试,你应该很少运行它们,因为它们既慢又昂贵。
一种方法是通过将其wallaby
添加到您的单元测试中排除标记test_helpers
:
ExUnit.configure exclude: [:wallaby]
现在运行mix test
不会运行任何 UI 测试,直到您使用以下命令运行它--include
:
mix test --include wallaby
这种方法比wallaby
标签前的钩子更好,因为它是明确的,开发人员不会对长时间运行的构建和集成测试感到惊讶。
mix.exs
添加 mix 别名来启动 webpack 构建并运行 wallaby 测试也可能是个好主意。这将是可以在 CI 中使用的单个命令。