我在測試插件/項目中有幾個測試文件寫在我的DSL中。大多數測試使用內聯多行字符串和Xtend,但在四種情況下,我需要測試代碼,這些代碼對URL和類路徑有一定的魔力,所以我真的需要類路徑中的資源。如何禁用我的測試插件中的代碼生成?
由於加載資源只適用於擴展名正確的情況,所以我不能給這些文件一個假擴展名。
現在我的問題:我的DSL也有一個代碼生成器。這意味着最終,我最終會在一些我無法擁有它們的地方生成一些文件(例如,它們不會進行編譯,甚至在包含多個文件時將測試錯誤處理進行測試時出錯) )。
我不能禁用Xtext性質,因爲測試項目使用Xtend所以對於這些文件,我確實需要代碼生成。
由於生成器在Eclipse內部運行(我爲其他項目安裝了DSL插件),因此無法覆蓋Guice中的代碼生成器。
如何在這種情況下禁用代碼生成器?
你的設置是非常複雜的,這是一個有點難以明白你真正想要實現......都寫在這些「測試文件我的DSL「實際的JUnit測試,還是包含用於測試的數據?您正在嘗試進行單元測試或集成測試?你正在測試系統的哪一部分 - 代碼生成部分,還是必須先生成的東西?爲什麼你不能嘲笑資源,或者與其他文件一起生成適當的測試代碼? – weltraumpirat 2012-03-31 09:35:56
我的測試文件是測試使用的數據。在這種情況下,我不確定他們是UT還是IT - 這有什麼關係嗎?我正在測試自己的代碼生成器,Xtext的CG作品。我解釋了爲什麼我不能嘲笑資源:他們必須在類路徑上。我正在考慮更改測試用例以將資源複製到bin /文件夾,但我想知道這是否是最好的方法。 – 2012-03-31 10:02:39
UT和IT之間的區別在於,在單元測試中,我總是試圖找到一種方法來模擬*所有*依賴,而整合測試的重點是看看所有部分是否合在一起......在你的情況,我會先說單元測試,然後看看你的測試覆蓋是否有任何盲點。你從哪裏得到類路徑細節?必須有一個調用來讓生成器訪問這些對象,所以這就是你應該嘲笑的依賴(即返回假的類路徑條目,並驗證這些對象的「魔術」)。 – weltraumpirat 2012-03-31 10:08:20