如何在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
出于某种原因,它只是不接它。
任何帮助将不胜感激,即使这是一个愚蠢的错误。我已经看了几个小时了。
好的,
看来我正确地进行了引用。基本上,如果我构建并运行它,测试就会通过。
所以我所做的是重新启动VS2013 Ultimate,现在它显示得很好。
但是,如果我在规范流功能文件中进行更改,它会再次将其标记为红色,就好像它尝试调用的方法不存在一样。但是,如果我构建并运行测试,它将起作用。我假设这是规范流的错误。