Module Orchard CMS模块的SpecFlow集成测试未激活自定义模块

Module Orchard CMS模块的SpecFlow集成测试未激活自定义模块,module,integration-testing,orchardcms,specflow,activation,Module,Integration Testing,Orchardcms,Specflow,Activation,我正在尝试使用SpecFlow为Orchard CMS中的自定义模块编写自己的集成测试项目。我创建了一个新项目,它(目前)位于“src”目录中(与Orchard.Web处于同一级别) 在该项目中,我创建了一个“Bindings”文件夹,并从原始Orchard.Specs项目复制了3个以上的文件:OrchardSiteFactory.cs、Settings.cs和WebAppHosting.cs 我还创建了一个新的SpecFlow功能,并做了一个简单的测试,检查我的自定义模块的管理菜单中是否显示了

我正在尝试使用SpecFlow为Orchard CMS中的自定义模块编写自己的集成测试项目。我创建了一个新项目,它(目前)位于“src”目录中(与Orchard.Web处于同一级别)

在该项目中,我创建了一个“Bindings”文件夹,并从原始Orchard.Specs项目复制了3个以上的文件:OrchardSiteFactory.cs、Settings.cs和WebAppHosting.cs

我还创建了一个新的SpecFlow功能,并做了一个简单的测试,检查我的自定义模块的管理菜单中是否显示了一个链接

在WebAppHosting.cs中,我更改了_orchardTemp的值以反映我的项目所在文件夹的名称,在OrchardSiteFactory.cs中,我将我的模块名(以及它之前依赖的任何模块)添加到webApp.giveniaveacleansitewith()的TableData参数中的模块扩展列表中方法调用给定的nihaveinstalledOrchard方法

这将运行站点,安装模块,并将所有必需的文件从我的自定义模块复制到用户{USER}\AppData\Local\temp{FolderName}中的temp WebApp文件夹中。。。与其他所有果园模块相同。但是,它不会激活/运行我的模块的迁移代码

通过在测试代码中放置一个断点来阻止它删除temp web app文件夹,我可以连接到SQL Compact Db并查看创建的表和数据,而没有任何自定义模块的迹象

我已经在网上和Orchard代码中搜索了很多关于如何激活模块的线索,因为它显然激活了其他模块(比如博客模块),但我画的是空白。我在WebAppHosting.cs中尝试了ExtensionDeploymentOptions和dynamiccompationoption的各种组合,但毫无乐趣

我的测试场景很简单:

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:这个问题与Orchard论坛上的问题相同,但没有得到回复:

最终解决方案非常简单,我忘记了第二行

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>"
场景:在管理(菜单)中有一个指向自定义模块的链接
考虑到我已经安装了果园
我已经启用了“My.Custom.Module”
当我去“管理员”的时候
那么我应该看看“