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

本文关键字:引用 外部 定义 specflow | 更新日期: 2023-09-27 17:56:01

我已经浏览了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

出于某种原因,它只是不接它。

任何帮助将不胜感激,即使这是一个愚蠢的错误。我已经看了几个小时了。

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

好的,

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

所以我所做的是重新启动VS2013 Ultimate,现在它显示得很好。

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