处理Common Test suite中的共享助手?

时间:2014-01-29 10:12:30

标签: erlang common-test

我有一个包含许多不同应用程序的Erlang项目。我正在使用 Common Test 进行一些测试。

apps/foo/suites/foo_SUITE.erl
apps/bar/suites/bar_SUITE.erl

我开始看到这些套件中的实用程序代码重复。

我应该在哪里放置我的实用程序代码,以便可以在两个套件之间共享?

我考虑过添加另一个应用程序:

apps/test_stuff

...但是我不能让CT套件依赖于此而不会使被测试的应用程序依赖于此(或者我可以吗?)。我不想这样做,因为只有在测试时才需要test_stuff

我的 eunit 测试在应用程序(apps/foo/testapps/bar/test)之间存在类似的问题,并且我在eunit和我之间使用类似的功能CT测试在同一个应用程序中(apps/bar/suites vs apps/bar/test)。我也可以在这种情况下使用相同的解决方案吗?或者我是否需要问另一个问题?

2 个答案:

答案 0 :(得分:0)

您认为ct:require / 1,2可以帮助您,以便foo和bar SUITE在执行之前需要test_stuff吗?有关详细信息http://www.erlang.org/doc/man/ct.html#require-1

答案 1 :(得分:0)

这取决于您如何打包最终版本。例如,我使用钢筋进行相关管理。我将Cowboy与其他依赖项一起用于测试目的,但在我的reltool.config中,我省略了它,因此它不会与最终产品打包在一起。我使用rebar运行Common Test,它可以将Cowboy添加到路径中,而不会将其作为lib捆绑其他所有内容,或者作为依赖项添加到我正在测试的应用程序中。

但是,如果您有另一个流程从依赖项中推断出您的发布配置,那么您必须找到一种在生成发布时排除测试代码的方法。