在Specflow功能执行期间加载nunit项目文件(example.nunit)

时间:2016-11-29 23:10:31

标签: selenium-webdriver nunit specflow

要启用环境配置,将包含的nunit项目作为Specflow BDD框架的一部分(根据此Pass parameters via command line to NUnit)。但是当我尝试从命令提示符加载它时,收到错误消息 。\ nunit-console-x86.exe:找不到夹具。

尝试运行的命令:nunit-console-x86.exe example.nunit / config:CI /run:"xxxx.Features.abcdFeature“$ dll_dir / result = $ result_dir

框架就是这样的 Specflow,Selenium-Share data between different Step definitions or classes 使用Nunit 2.6.4和Specflow 1.9

我的nunit项目文件。我们是否需要在上面的nunit.exe命令中传递.csproj文件或dll?

<NUnitProject>
  <Settings activeconfig="Default" />
  <Config name="Default" configfile="App.CI.config">
    <assembly path="C:\FuncTest\{ProjectName}\{ProjectName}\bin\Debug\{ProjectName}.dll" />
  </Config>
  <Config name="CI" configfile="App.CI.config">
    <assembly path="C:\FuncTest\{ProjectName}\{ProjectName}\bin\Debug\{ProjectName}.dll" />
  </Config>
  <Config name="UAT" configfile="App.UAT.config">
    <assembly path="C:\FuncTest\{ProjectName}\{ProjectName}\bin\Debug\{ProjectName}.dll" />
  </Config>
</NUnitProject>

1 个答案:

答案 0 :(得分:0)

我假设你有一个包含至少一个测试夹具的项目,看起来像这样:

[TestFixture]
public class MyFirstTestFixture{

   [Test]
   public void MyFirstTest(){
      ..
   }
}

因此,如果您的项目名为myfirstproj.csproj,其中包含此fixture,则会生成以下文件myfirstproj / bin / debug / myfirstproj.dll

  

注意,如果使用release设置编译,则可以将release替换为release。我假设我们现在使用debug。

现在您创建一个新的nunit文件(与myfirstproj.csproj在同一文件夹中)并放置这样的竞争对象。 (我假设你称之为myfirstproj.nunit)

<NUnitProject>
  <Settings activeconfig="local"/>
  <Config name="local" configfile="App.config">
    <assembly path="bin\Debug\myfirstproj.dll"/>
  </Config>
</NUnitProject>

现在,当你想要这样做时,你会这样做

nunit3-console.exe myfirstproj.nunit /config:local

所以你的设置和我的设置之间存在差异:

  1. 从nunit文件
  2. 指定dll的相对路径
  3. 指定不带占位符的路径
  4. 使用nunit文件'
  5. 执行测试

    这对你有用吗?

    如果你想调试这个,我会用这个步骤:

    1. 首先创建一个只有一个单元测试的空项目
    2. 通过执行nunit3-console.exe c:\ absolutepath \ to \ my \ project.dll
    3. 运行该测试
    4. 如果以上工作,请开始创建nunit文件并使用nunit文件运行它,看看是否有效
    5. 尝试指定配置并将该配置用于不同的环境