2014-01-29 17 views
1

我有一個包含一堆不同應用程序的Erlang項目。我使用通用測試來做一些測試。處理通用測試套件中的共享助手?

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

我開始在這些套件中看到實用程序代碼的重複。

我應該在哪裏放置我的實用程序代碼,以便它可以在兩個套件之間共享?

我已經考慮增加其他應用程序:

apps/test_stuff 

...但我不能做CT套房取決於這一點沒有被測使應用程序依賴於這個(或可以嗎?)。我不想這樣做,因爲只有在測試時才需要test_stuff

我有我的eunit測試類似的問題,我使用的是同一個應用程序(apps/bar/suites VS apps/bar/test)的eunit和CT檢查之間相似的功能應用程序之間(apps/foo/testapps/bar/test),和在那裏。我是否也可以爲這種情況使用相同的解決方案?或者我需要提出另一個問題嗎?

回答

0

您是否認爲ct:require/1,2可以幫助您,以便foo和bar SUITE在執行之前需要test_stuff?欲瞭解更多信息http://www.erlang.org/doc/man/ct.html#require-1

+0

編號'ct:require'確保給定變量存在於配置中。據我所知,它不適用於應用程序依賴關係。 –

0

這取決於你如何打包你的最終版本。例如,我使用螺紋鋼進行再循環管理。爲了測試目的,我將Cowboy與其他依賴關係一起提取,但在我的reltool.config中,我忽略了它,因此它不會與最終產品一起打包。我使用rebar來運行通用測試,並且它能夠將Cowboy添加到路徑中,而不必將其作爲lib與其他所有內容捆綁在一起,或者作爲依賴項添加到正在測試的應用中。但是,如果您有另一個從您的依賴關係推斷您的發佈配置的進程,那麼在生成發佈時,您必須找到排除測試代碼的方法。