我在下面的页面后面创建了一个SpecFlow插件。并创建了一个Generator插件,因为我需要修改我的功能背后的自动生成代码。
https://github.com/techtalk/SpecFlow/wiki/Plugins。
SpecFlowPlugin代码
[assembly: GeneratorPlugin(typeof(SpecFlowSpiraAdapterPlugin))]
namespace SpiraTest.SpecFlowPlugin
{
/// <summary>
/// A adapterpPlugin is needed to use a custom MSTest generator with SpecFlow.
/// </summary>
public class SpecFlowSpiraAdapterPlugin : IGeneratorPlugin
{
/// <summary>
/// By implementing the Initialize- Method on the IGeneratorPlugin interface, you get access to the GeneratorPluginEvents and GeneratorPluginParameters
/// </summary>
/// <param name="generatorPluginEvents"></param>
/// <param name="generatorPluginParameters"></param>
public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters)
{
generatorPluginEvents.CustomizeDependencies += GeneratorPluginEvents_CustomizeDependencies;
}
private void GeneratorPluginEvents_CustomizeDependencies(object sender, CustomizeDependenciesEventArgs e)
{
e.ObjectContainer.RegisterTypeAs<MSTestCustomGenerator, IUnitTestGeneratorProvider>();
}
}
}
我在尝试运行测试时收到错误消息,表明我没有以下属性。
[assembly:RuntimePlugin]属性
但是我不需要该属性,因为我有[assembly:GeneratorPlugin]属性。
不知道为什么这么说。有什么想法吗?
消息:类初始化方法 MiJobsAdminPortal.UITests.Login.LoginFeature.FeatureSetup扔了 例外。 TechTalk.SpecFlow.SpecFlowException: TechTalk.SpecFlow.SpecFlowException:缺少[assembly:RuntimePlugin] SpiraTest.SpecFlowPlugin中的属性,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null。请检查 http://go.specflow.org/doc-plugins了解详情..
答案 0 :(得分:1)
对于SpecFlow,每个插件都是一个Generator和一个Runtime插件,除非你另外配置它。这是代码:https://github.com/techtalk/SpecFlow/blob/master/TechTalk.SpecFlow/Infrastructure/ContainerBuilder.cs#L127
作为配置示例,请查看SpecFlow + Excel插件的配置,该插件也只是一个生成器插件。
<specFlow>
<plugins>
<add name="SpecFlow.Plus.Excel" type="Generator" />
</plugins>
</specFlow>
您必须将类型指定为Generator
。如果不是,SpecFlow总是搜索两种插件类型。
此行为未记录,但多年来一直存在。我将在接下来的几天内更新文档。
完全披露:我是SpecFlow&amp;的维护者之一。 SpecFlow +