【问题标题】:SpecFlow integration test for Orchard CMS module does not activate custom moduleOrchard CMS 模块的 SpecFlow 集成测试未激活自定义模块
【发布时间】:2014-02-19 17:09:15
【问题描述】:

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

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

我还创建了一个新的 SpecFlow 功能并进行了一个简单的测试,以检查我的自定义模块的管理菜单中是否出现了一个链接。

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

这将运行站点,安装模块并将所有必要的文件从我的自定义模块复制到 Users{USER}\AppData\Local\Temp{FolderName} 中的 temp WebApp 文件夹...对于所有其他 Orchard 模块。但是它不会为我的模块激活/运行迁移代码。

通过在测试代码中放置一个断点来阻止它删除临时 Web 应用程序文件夹,我能够连接到 SQL Compact Db 并查看创建的表和数据,并且没有我自定义的迹象模块。

我已经在网上和 Orchard 代码中搜索并搜索了有关如何激活模块的线索,因为它显然会激活其他模块(例如博客模块),但我正在画一个空白。我在 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:这个问题和Orchard论坛上问的一样,但是一直没有回复:http://orchard.codeplex.com/discussions/259028

【问题讨论】:

    标签: module integration-testing orchardcms specflow activation


    【解决方案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>"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多