【发布时间】:2014-04-29 20:45:26
【问题描述】:
我正在使用带有 Specflow 的 Reshaper,ResharperCode 检查将步骤定义、绑定和挂钩标记为从未使用过。
我尝试使用here的答案
但未能成功获取正确拾取的外部注释。这是我在外部注释文件中尝试的内容:-
<assembly name="TechTalk.SpecFlow.dll">
<member name="T:TechTalk.SpecFlow.BindingAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.GivenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.WhenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.ThenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
</assembly>
我尝试将其保存在 C:\Program Files (x86)\JetBrains\ReSharper\v8.2\Bin 和 C:\Program Files (x86)\JetBrains\ReSharper\v8.2\Bin\ExternalAnnotations 中(不太清楚应该去哪里,因为默认安装中不存在 ExternalAnnotations 文件夹)
但是当我关闭并重新打开 VS 时,Inspection 仍然会选择未使用的绑定和步骤定义:-
Solution qdf.AcceptanceTests.sln
Project Alpari.QualityAssurance.SpecFlowExtensions
Alpari.QualityAssurance.SpecFlowExtensions\Steps\CrossStepDefinitionFileTwo.cs:7 Class 'CrossStepDefinitionFileTwo' is never used
Alpari.QualityAssurance.SpecFlowExtensions\Steps\CrossStepDefinitionFileTwo.cs:10 Method 'GivenICreateAnInstanceOfStepDefinitionOneFromStepDefinitionTwo' is never used
Alpari.QualityAssurance.SpecFlowExtensions\Steps\CrossStepDefinitionFileTwo.cs:42 Method 'GivenICallAMethodInStepDefinitionTwoThatCallsTheSameMethodInStepDefinitionFileOne' is never used
谁能告诉我我在配置这个时做错了什么?
EDIT 完成了在 Alexander 的帖子之后运行良好的 xml:-
<!--Deploy to %ReSharperInstallDir%\Bin\ExternalAnnotations
to check the ExternalAnnotations have worked, highlight one and press Ctrl-Shift-F1
see https://stackoverflow.com/questions/23359738/how-can-i-get-resharper-to-treat-specflow-bindings-step-def-etc-annotations-as
for additional info
-->
<assembly name="TechTalk.SpecFlow">
<member name="T:TechTalk.SpecFlow.BindingAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.GivenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.WhenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.ThenAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeTestRunAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterTestRunAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeFeatureAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterFeatureAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeScenarioAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterScenarioAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeScenarioBlockAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterScenarioBlockAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.BeforeStepAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.AfterStepAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.StepArgumentTransformationAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.StepDefinitionAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
<member name="T:TechTalk.SpecFlow.ScopeAttribute">
<attribute ctor="M:JetBrains.Annotations.MeansImplicitUseAttribute.#ctor" />
</member>
</assembly>
【问题讨论】:
标签: binding annotations resharper specflow