2014-01-28 63 views
1

我正嘗試使用SpecFlow爲我的自定義模塊在Orchard CMS中編寫自己的集成測試項目。我創建了一個新的項目(當前)駐留在「src」目錄中(與Orchard.Web相同)。Orchard CMS模塊的SpecFlow集成測試不會激活自定義模塊

在這個項目我已經創建了一個「綁定」文件夾,並從原來的Orchard.Specs項目複製3個文件:OrchardSiteFactory.cs,Settings.cs和WebAppHosting.cs

我還創建了一個新的SpecFlow功能,並做了一個簡單的測試,檢查鏈接是否出現在我的自定義模塊的管理菜單中。

在WebAppHosting.cs中,我更改了_orchardTemp的值以反映我的項目所在的文件夾的名稱,並在OrchardSiteFactory.cs中將我的模塊名稱(以及它依賴的任何模塊)添加到在GivenIHaveInstalledOrchard方法中的webApp.GivenIHaveACleanSiteWith()方法調用的TableData參數中的模塊擴展列表。

運行該站點,安裝模塊並將所有必需的文件從我的自定義模塊複製到用戶{USER} \ AppData \ Local \ Temp {FolderName}中的臨時WebApp文件夾中,方式與它相同爲所有其他果園模塊。但是它不會激活/運行我的模塊的遷移代碼。

通過在測試代碼中放置斷點來阻止它刪除臨時Web應用程序文件夾,我可以連接到SQL Compact Db並查看創建的表和數據,並且沒有我的跡象自定義模塊。

我已經在網上搜索和搜索了Orchard代碼中關於如何讓模塊激活的線索,因爲它顯然激活了其他模塊(如Blogs模塊),但我畫了一個空白。我已經嘗試了WebAppHosting.cs中的ExtensionDeploymentOptions和DynamicCompilationOption的各種組合,沒有任何喜悅。

我的測試場景很簡單:

Scenario: In the admin (menu) there is a link to the custom module 
Given I have installed Orchard 
When I go to "admin" 
Then I should see "<a[^>]*href="/Admin/MyCustomModule"[^>]*>My Custom Module</a>" 

而且它完全運行,只有失敗的時候沒有找到在頁面鏈接(查看在HTML瀏覽器的實際字符串字符串比較顯示儀表板正如你所期望的那樣,所以其他一切工作正常。

我打算調查食譜是否有任何影響/可以在測試項目中調整。如果任何人有任何線索如何讓這個工作我真的很感謝

個乾杯

ETA:問題是一樣的問這裏的果園論壇,但一直沒有回覆到它:http://orchard.codeplex.com/discussions/259028

回答

1

的解決辦法是在最後煩人簡單,我已經忘記了二號線

Scenario: In the admin (menu) there is a link to the custom module 
Given I have installed Orchard 
And I have enabled "My.Custom.Module" 
When I go to "admin" 
Then I should see "<a[^>]*href="/Admin/MyCustomModule"[^>]*>My Custom Module</a>"