Specflow自定义插件错误组件丢失

时间:2018-04-12 09:26:40

标签: specflow

我有一个简单的自定义插件,它在1月份工作,最近已停止使用以下消息:

“自定义工具错误:生成错误:_PATH_TO_PLUGIN _中缺少[assembly:GeneratorPlugin]属性”

我在这方面经历了另一个stackoverflow问题,但它没有解决问题。

以下是具有该属性并使用Specflow 2.2.1 nuget包构建的插件代码。

[assembly: GeneratorPlugin(typeof(CustomPlugin))]
namespace Tests.SpecFlowPlugin
{
    public class CustomPlugin : IGeneratorPlugin
    {
        public void Initialize(GeneratorPluginEvents generatorPluginEvents, GeneratorPluginParameters generatorPluginParameters)
        {
            generatorPluginEvents.CustomizeDependencies += GeneratorPluginEvents_CustomizeDependencies;
        }


        private void GeneratorPluginEvents_CustomizeDependencies(object sender, CustomizeDependenciesEventArgs e)
        {
            e.ObjectContainer.RegisterTypeAs<IgnoreDecorator, ITestClassTagDecorator>("ignore");
            e.ObjectContainer.RegisterTypeAs<IgnoreDecorator, ITestMethodTagDecorator>("ignore");
        }
    }
}

这是我的部分app.config:

<specFlow>
    <unitTestProvider name="MsTest" />
    <stepAssemblies>
      <stepAssembly assembly="SpecFlow.Assist.Dynamic" />
    </stepAssemblies>
    <plugins>
      <add name="Tests.CustomPlugin" type="Generator"/>
    </plugins>
    <trace stepDefinitionSkeletonStyle="MethodNameUnderscores" />
  </specFlow>

当我在.feature文件上使用运行自定义工具时,这是跟踪:

  

[16:14:29.3990135]跟踪:为所有类别启用跟踪   [16:14:29.3990135] VsGeneratorServices:发现项目设置   [16:14:29.4065488] VsGeneratorInfoProvider:发现生成器   信息... [16:14:29.4435543] VsGeneratorInfoProvider:运行时   在_SOLUTION_DIR_ \ packages \ SpecFlow.2.2.1 \ lib \ net45中找到   [16:14:29.4445556] VsGeneratorInfoProvider:发现于的发电机   _SOLUTION_DIR_ \包\ SpecFlow.2.2.1 \工具\ TechTalk.SpecFlow.Generator.dll   [16:14:29.4450553] RemoteGeneratorServices:创建远程包装器   对于项目的发电机(2.2.0 at   _SOLUTION_DIR_ \ packages \ SpecFlow.2.2.1 \ tools)[16:14:29.4810888] RemoteAppDomainTestGeneratorFactory:TestGeneratorFactory:   TechTalk.SpecFlow.Generator.TestGeneratorFactory [16:14:29.4810888]   RemoteAppDomainTestGeneratorFactory:添加了AssemblyResolve事件   [16:14:29.5071116] RemoteAppDomainTestGeneratorFactory:   GeneratorAssemlbyResolveEvent:名称:   TechTalk.SpecFlow.RemoteAppDomain,Version = 2017.1.12.0,   Culture = neutral,PublicKeyToken = 0778194805d6db41; [16:14:29.5076129]   RemoteAppDomainTestGeneratorFactory:GeneratorAssemlbyResolveEvent:   名称:TechTalk.SpecFlow.RemoteAppDomain,Version = 2017.1.12.0,   Culture = neutral,PublicKeyToken = 0778194805d6db41; [16:14:29.5436452]   RemoteAppDomainTestGeneratorFactory:GeneratorAssemlbyResolveEvent:   名称:TechTalk.SpecFlow.Generator,Version = 2.2.0.0,Culture = neutral,   公钥= 0778194805d6db41; [16:14:29.5486501]   RemoteAppDomainTestGeneratorFactory:GeneratorAssemlbyResolveEvent:   名称:TechTalk.SpecFlow.Generator,Version = 2.2.0.0,Culture = neutral,   公钥= 0778194805d6db41; [16:14:29.5496502]   RemoteAppDomainTestGeneratorFactory:创建的生成器的AppDomain   [16:14:29.5496502] VsGeneratorServices:发现项目设置   [16:14:29.7108192] RemoteAppDomainTestGeneratorFactory:   GeneratorAssemlbyResolveEvent:名称:TechTalk.SpecFlow,   Version = 2.2.0.0,Culture = neutral,PublicKeyToken = 0778194805d6db41;   [16:20:43.6703331] RemoteAppDomainTestGeneratorFactory:   GeneratorAssemlbyResolveEvent:名称:   Microsoft.TestPlatform.VsTestConsole.TranslationLayer,   Version = 15.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a;

奇怪的是,当我使用nuget包目录中的以下命令时,所有功能文件都已正确构建,并且使用完全相同的app.config设置加载插件没有问题。这只在视觉工作室内部出现问题

  

specflow generateall“_PATH_TO_TEST_PROJECT _”

我尝试更新/重新安装specflow扩展,更新到Specflow 2.3.1,删除缓存,将自定义插件复制到nuget目录等。我不知道它在做什么,但它目前影响我们团队的所有成员尽管它在2个月前正常运行,没有明显的变化影响这一领域或临时更新。

0 个答案:

没有答案