2011-10-28 38 views
1

我正在使用OpenWrap 2.0的測試版。 OpenWrap包含運行單元測試的支持,我的問題是這個工作到底如何?OpenWrap:test-wrap,它是如何工作的?

我是否應該將它看作是一個採用構建包裝的測試運行器,搜索包裝中包含的測試並嘗試運行它們?是否需要在包裝中包含測試?

依賴項解析在測試環境中如何工作?我可以指定一個測試範圍,它增加了測試所需的額外依賴。這些依賴關係何時使用?我假設它用於構建測試項目,並使用測試包運行測試?但是,當我在包裝中包含測試時,不應該將這些測試範圍的依賴關係視爲包裝的依賴關係,還是僅當我嘗試執行「測試包裝」時纔將它們用作依賴關係?

我在測試的上下文中想知道的另一件事是編譯時和運行時依賴之間的區別。

作爲一個例子,我有一個指定API的項目API。在該項目旁邊,我有兩個其他項目Impl1和Impl2,每個項目都指定了該API的不同實現。接下來,我有一個測試項目API.Tests,其中包含針對API的測試。測試使用依賴注入來注入Impl1或Impl2來運行測試。 在這種情況下,API.Tests項目只對API具有編譯時間依賴性(並且應該只具有編譯時間依賴性的可用性)。但是,在運行測試時,該項目對Impl1或Impl2具有運行時依賴性。有關如何打包的建議?

回答

0

test-wrap將能夠運行一個測試運行器,用於測試作爲pacakge(in/tests)中的一部分發布。

現在的實現不再是最新的,主要是因爲軟件包不包含testdriven.net測試運行器,這使得運行這些測試變得相當複雜。由於這個原因,我還沒有重新評估過我們的計劃。

OpenWrap 2使用範圍來定義僅適用於您的代碼的某個子集的依賴性。在測試的情況下,如果在描述符中有正確的dicrectory-structure指令,則您的項目將在正確的範圍內引入這些依賴關係。

這就是說我們不會在程序集中保留這些信息,所以當您運行這些測試時,我們不會加載測試範圍的依賴關係,我們可能應該這樣做(至少對於測試來說)。然而,你的包中的所有程序集都被注入到當前的appdomain中,所以對於你的場景,只要你在/ tests中有你的測試,你只需要將所有的程序包打包在同一個包中,它就可以工作。

相同的機制將

+0

你的意思是一個/測試文件夾中生成的包裝,其中包括所有必需的DLL? – rvdginste

+0

測試組件。/bin中的程序集已經加載。 – SerialSeb