我正在编写一个自定义插件来自定义SpecFlow生成的自动生成的代码文件。
构建解决方案并将其放入 SpecFlow 测试项目的"lib"文件夹中后。在保存 SpecFlow 功能文件时,我得到
Specflow plugin : Generation error: Missing [assembly:GeneratorPlugin] attribute in 'path to dll'
即使我在插件程序集中标记了这个
[assembly: GeneratorPluginAttribute(typeof(CustomGeneratorPlugin))]
使用反射/自检,我可以自己加载程序集并解析属性
代码在这里 - https://github.com/chrismckelt/SpecFlowCustomPlugin
知道是什么原因造成的吗? 谢谢
通过将以下"path"属性添加到生成器 SpecFlow 配置部分来解决
<generator path=".lib"
完整配置
<specFlow>
<generator allowDebugGeneratedFiles="false" allowRowTests="true" generateAsyncTests="false" path=".lib" />
<runtime stopAtFirstError="false" missingOrPendingStepsOutcome="Ignore" />
<trace traceSuccessfulSteps="true" traceTimings="false" minTracedDuration="0:0:0.1" stepDefinitionSkeletonStyle="RegexAttribute" />
<plugins>
<add name="McKeltCustom" path=".lib" type="GeneratorAndRuntime" />
</plugins>
<stepAssemblies>
<stepAssembly assembly="SpecFlow.Assist.Dynamic" />
</stepAssemblies>
</specFlow>
我通过在SpecflowPlugin项目中将所有引用的TechTalk.SpecFlow dlls的copy-local标志设置为false来解决此问题。