缺少SpecFlowPlugin中的[assembly:RuntimePlugin]属性

时间:2018-04-04 14:37:32

标签: c# selenium mstest specflow

我在下面的页面后面创建了一个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了解详情..

1 个答案:

答案 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 +