如何在specflow中正确引用外部定义类

时间:2014-04-01 12:43:39

标签: c# visual-studio-2013 mstest specflow

我已经查看了specflow文档以及在线(这里也有一些)关于如何在我的specflow项目中使用外部类库的帖子。我试图使用这些建议,但似乎没有任何解决方案适合我。

我正在尝试引用外部项目中的外部类,以便通过我的specflow功能“调用”。

我理解我的配置需要如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="specFlow"     type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
  </configSections>
  <specFlow>
    <unitTestProvider name="MsTest" />
    <stepAssemblies>
      <stepAssembly assembly="UtilityClasses"/>
    </stepAssemblies>
  </specFlow>
</configuration>

所以我有一个名为UtilityClasses的独立项目,其中有一个名为Admin_Subtests.cs的csharp文件

然而,即使将步骤程序集添加到配置中,即使重建后,功能文件也似乎无法获取步骤。

csharp文件包含以下内容(其中包括):

namespace SeleniumDPS
{
    [Binding]
    public class Admin_Subtests
    {

    [When(@"I click Register")]
    [Given(@"I click Register")]
    public static void Subtest_Navigation_Registration()
    {
        try
        {
            Admin_Navigation.Registration.Click();
        }
        catch (Exception ex) { WebDriver.CatchNTrash(ex); }
        //Logging for subtest
        WebDriver.TestLog().LogSubTest(WebDriver.TestLog().GetTestResult(), "I click Register");
    }

    etc

这是我的专题文件:

Scenario: LPSS_AdminRegistration_PrivateLandlord
     Given I click Register

由于某种原因,它只是没有拿起它。

即使代表我犯了一个愚蠢的错误,任何帮助都会受到高度赞赏。我已经看了几个小时了。

1 个答案:

答案 0 :(得分:0)

好吧,我似乎正确地进行了引用。基本上,如果我构建并运行它,测试就会通过。

所以我所做的就是重新启动VS2013 Ultimate,它现在显示为正常。

但是如果我在规范流特征文件中进行更改,它会再次将其标记为红色,就像它试图调用的方法不存在一样。但是,如果我构建并运行测试,它将再次起作用。我假设这是specflow的错误。