Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 三种类型的Specflow插件(运行时、生成器、运行时/生成器)之间有什么区别?_C#_.net_Bdd_Coded Ui Tests_Specflow - Fatal编程技术网

C# 三种类型的Specflow插件(运行时、生成器、运行时/生成器)之间有什么区别?

C# 三种类型的Specflow插件(运行时、生成器、运行时/生成器)之间有什么区别?,c#,.net,bdd,coded-ui-tests,specflow,C#,.net,Bdd,Coded Ui Tests,Specflow,Specflow支持的三种不同类型的自定义插件之间有什么区别?我现在正在为CodedUI制作一个生成器插件,这个问题反复出现在我的脑海中,文档要么含糊不清,要么不完整,所以我想问一下这里的社区,他们是否能给我一个明确、具体的解释,说明运行时插件、生成器插件和运行时/生成器插件之间的区别。当添加插件时,它们做什么以及如何改变Specflow的功能 虽然知道如何编写它们很有用,但我也想知道我正在使用的东西背后的理论,而且文档在这方面相当安静。SpecFlow目前的工作方式是在设计或编译期间将功能文件

Specflow支持的三种不同类型的自定义插件之间有什么区别?我现在正在为CodedUI制作一个生成器插件,这个问题反复出现在我的脑海中,文档要么含糊不清,要么不完整,所以我想问一下这里的社区,他们是否能给我一个明确、具体的解释,说明运行时插件、生成器插件和运行时/生成器插件之间的区别。当添加插件时,它们做什么以及如何改变Specflow的功能


虽然知道如何编写它们很有用,但我也想知道我正在使用的东西背后的理论,而且文档在这方面相当安静。

SpecFlow目前的工作方式是在设计或编译期间将功能文件转换为.NET(C#/VB)测试类。这些生成的类位于MyStuff.feature.cs文件中

从生成的文件运行测试(SpecFlow场景)后,它们将使用SpecFlow运行时查找步骤定义、挂钩以及为场景步骤提供自动化所需的所有内容

生成器插件可能会影响设计或编译时代码生成(例如,您可以为测试方法生成特殊属性)。运行时插件可能会影响测试的执行(例如,添加特殊日志记录)。运行时/生成器只是一个可以同时更改两者的插件


当生成器插件在设计或编译时加载和执行时,您必须确保所有插件依赖项都可用。例如,你不能从你的应用程序中引用其中一个项目,因为这些项目可能在生成器已经执行的时候尚未完成。

谢谢Gaspar,这是一个非常有用的解释,正是我想要的。学习Specflow的人在文档中没有Specflow所做的一切背后的理论,这是非常令人沮丧的。谢谢你的帮助!