8

SpecFlowは素晴らしいです-そしてそれは私たちが適切な統合テストを行うのに非常に役立ちます。

私が疑問に思っていたのは、SpecFlowに機能コードビハインドファイルで作成するテストクラスに追加のNUnit属性を追加するように指示する方法があるかどうかです。

現在、私のテストクラスは次のように生成されます。

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.8.1.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[NUnit.Framework.TestFixtureAttribute()]
[NUnit.Framework.DescriptionAttribute("Some action description here")]
public partial class MySampleFeature
{  
   ......
}

SpecFlowに、テストのカテゴリを定義するためにNUnit属性を追加するように指示する方法はありますか?次のようになります。

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.8.1.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[NUnit.Framework.TestFixtureAttribute()]
[NUnit.Framework.DescriptionAttribute("Some action description here")]
[NUnit.Framework.Category("LongRunningTests")]   <== add this "Category" attribute
public partial class MySampleFeature
{  
   ......
}

生成されたコードビハインドにこれを手動で追加するのは無駄です。次にSpecFlowがそのコードビハインドを再生成するときは、もう一度実行することを覚えておく必要があります(おそらく、忘れてしまいます)。

そして、その機能がSpecFlowにまだ存在しない場合、これを追加するように申請するにはどうすればよいですか?:-)

4

2 に答える 2

11

実際、機能またはシナリオでタグを使用する(タグセクションを探す)NUnit.Framework.Category場合、この属性はすでにサポートされています。だからあなたが書くなら

@LongRunningTests
Feature: MySampleFeature

Category適切な属性が生成されます。

ただし、追加のカスタム属性が必要な場合は、IUnitTestGeneratorProviderインターフェイスを実装するカスタムジェネレータプロバイダーを作成し、構成のspecflowセクションでunitTestProvidergeneratorProvider属性に登録する必要があります。

組み込みの実装のソースはgithubにあります。

于 2012-06-13T06:43:39.463 に答える
2

@nemesvの良い答えに追加するには、次を追加します。

@LongRunningTests機能:MySampleFeature

コンソールから実行するには、次のようにします。

nunit3-console.exe myTests.dll --where "cat == LongRunningTests"

于 2018-01-24T01:24:28.980 に答える