2011-04-24 70 views
6

我剛開始玩玩!框架,並偶然遇到這樣的問題:在測試模式下運行應用程序時,作爲依賴項添加的模塊無法編譯。 到現在爲止,錯誤的模式重複了2/2次。屬於失敗測試套件的引用類無法解析爲類型。如何禁用播放!模塊測試在測試模式下運行應用程序時遇到阻礙嗎?

我dependencies.yml文件看起來像這樣:

require: 
- play 1.2 
- secure 
- crud 
- play -> cobertura 2.1 
- play -> paginate head 
- play -> messages 1.0 
- play -> i18ntools 1.0.1 
#  - play -> scaffold head 

正如你可以看到我已經禁用了scaffold模塊,但該行的下一個是paginate。第一請求之後立即出現的錯誤是:

Compilation error 
The file {module:paginate-head}/test/play/modules/paginate/MappedPaginatorTest.java could not be compiled. Error raised is : MockModel cannot be resolved to a type 

In {module:paginate-head}/test/play/modules/paginate/MappedPaginatorTest.java (around line 16) 

12: 
13: public class MappedPaginatorTest { 
14:  @Test 
15:  public void testPaginateByKey() { 
16:   Map<String, MockModel> models = new HashMap<String, MockModel>(); 
17:   List<String> keys = new ArrayList<String>(); 
18: 

MockModel類被放置在相同的目錄中MappedPaginatorTest。 (scaffold模塊的情況也是如此。) 我使用Eclipse在兩種模式下運行應用程序,但在從命令行運行play test時出現相同的錯誤。

我不堅持要修復模塊來啓用他們的測試。但如果這是我能夠接受的唯一方式。

回答

1

那麼,一個答案就是在Stack Overflow上發佈這個問題,其中paginate和scaffold的作者可能會偶然發現它。由於該作者恰好是我,所以模塊已更新。看起來並不是所有的類文件在構建模塊可分發組件時都被正確導出。

+1

這不是對所述問題的回答。問題是如何禁用測試... – Redbeard 2011-08-01 06:39:26

2

我發現了一個快速入侵,使我能夠禁用測試:只需重命名或刪除冒犯模塊目錄中的test子目錄(在我的情況下爲play-1.2/modules/paginate-head)。

但是,我仍然沒有解決問題,但留出了適當解決的空間:通過修復模塊問題,因爲省略模塊的測試也會導致一般問題。

0

這個肯定是玩的1.1到2.1遷移問題。並非所有的播放模塊都已經遷移到2.1版本。刪除測試目錄可以解決問題,但要非常小心,因爲模塊的行爲在2.1中的測試模式下可能會有所不同。

我們對guice 1.1.1模塊有同樣的問題,即使我們刪除了guice測試目錄,我們的一些測試用例失敗了。

我們決定遷移回1.1並等待幾個星期/月的模塊更新。

相關問題