繁体   English   中英

当使用不同装配中的步骤定义时,转到定义(F12)不起作用

[英]Go To Definition (F12) not working when step definitions are used from a different assembly

当使用不同装配中的步骤定义时,转到定义(F12)不起作用。 有办法使它起作用吗?

这可能是Bug或类似Specflow中的问题。 我有完全一样的问题。 尝试从功能文件转到“步骤定义”时,Visual Studio表示没有匹配的步骤绑定。 虽然,当尝试运行测试时,它们的运行与预期的一样,因此Specflow确实可以找到(并使用)匹配的步骤定义。

SpecFlow 1.8 Visual Studio扩展不完全支持外部程序集中的绑定。 这是他们的文档中所述这里 SpecFlow支持它们,但是Visual Studio Extension仅部分支持。 我不确定1.9是否可以解决此问题。

我知道我晚饭要晚了一点,但是似乎SpecFlow将所有绑定数据存储在用户的%temp%文件夹中,这些文件是简单的.json文件,它们映射在功能文件和步骤文件之间。

因此,当步骤与您的.feature文件位于同一解决方案中时-SpecFlow能够检测正确的源文件和step方法的确切位置。

但是,当步骤位于引用的dll中时,.json配置文件不足以在dll中定位元数据,因此F12无法正常工作。

我猜想这将需要对引用的程序集进行某种设计时反射,以使F12正常工作。

这可能很明显,但是请确保安装SpecFlow扩展。

工具->扩展/更新->在线->搜索“ Specflow”

@ShonnLyga非常感谢,这真的很有用

要从DLL引用程序集,您现在可以使用

<specFlow>
    <unitTestProvider name="NUnit" />
    <stepAssemblies>
      <stepAssembly assembly="YourDLLname" />
    </stepAssemblies>
</specFlow>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM