【问题标题】:Running integration/acceptance tests for an umbrella app in elixir在 elixir 中为伞形应用程序运行集成/验收测试
【发布时间】:2015-12-25 20:52:02
【问题描述】:

我有一个包含 Umbrella 应用程序的项目。伞下的子应用程序包括核心/主/域应用程序、交付应用程序、数据库支持的存储库和内存存储库。

我想编写一些集成测试来发送 http 请求并检查数据库中的更改。由于这些测试需要协调多个子应用程序,因此这些测试属于伞形应用程序,而不是单独的子测试目录。

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

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

【问题讨论】:

    标签: testing integration-testing elixir erlang-otp


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我有点不喜欢这两个选项。 1号。因为这并不总是可能的,因此我会选择选项 2。我真的不想在称为集成测试的地方创建应用程序。对我来说,语义上的接缝非常清楚,测试是针对同类群组或应用程序的,因此属于该级别。
    • 我选择了选项 2。现在我意识到伞式项目由一组扁平的应用程序组成。
    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多