运行 integration/acceptance 在 elixir 中测试 umbrella 应用程序

Running integration/acceptance tests for an umbrella app in elixir

我有一个包含 Umbrella 应用程序的项目。保护伞下的子应用程序包括一个 core/main/domain 应用程序、一个交付应用程序、一个数据库支持的存储库和一个内存存储库。

我想写几个发送http请求和检查数据库变化的集成测试。由于这些测试需要多个子应用程序的协调,因此这些测试属于综合应用程序,而不是单独的子测试目录。

默认的伞式项目没有使用测试目录创建,所以我不确定它们属于哪里。

我创建了一个测试目录并添加了一个调用 ExUnit.start 的 test_helper.exs 和一个 project_test.exs 测试。但是当我 运行 从伞目录混合测试时,它只在 apps/component/test 目录中找到测试,而不是在测试目录

中找到测试

伞式项目实际上是一个伞式设施,您不能向其添加代码或测试。我可以看到两个选项:

  1. 将测试添加到依赖于所有其他应用程序的应用程序(如果您有)

  2. 在应用程序中创建另一个应用程序,您将在其中存储所有集成测试

无论如何,请记住 ExUnit 有标签的概念,您可以标记所有集成测试,并随意使用标签系统进行 include/exclude 测试。随着测试数量的增加,这应该可以帮助您管理测试。