12

NUnit から MSTest に移行するよう求められ、既存のすべてのテストを新しいプラットフォームに変換する必要があります。ほとんどは正常に変換されましたが、パラメーター化されたテストに問題があります。拡張機能の作成方法を示す次の Web サイトを見つけ、そのコードをダウンロードしました。

http://blogs.msdn.com/b/vstsqualitytools/archive/2009/09/04/extending-the-visual-studio-unit-test-type-part-2.aspx

ただし、コンパイルは正常に行われますが、RowTestClass テストはすべて実行に失敗し、次のエラー メッセージが表示されます。

「単体テスト拡張機能 'urn:RunAsTestClassAttribute' の初期化に失敗しました: 単体テスト拡張機能が次の属性に登録されていません: Microsoft.VisualStudio.Test.Sample.UnitTestTypeExtension.RunAsSample.RunAsTestClassAttribute.」

VS2010 (10.0.40219.1 SP1Rel) (Microsoft .NET Framework バージョン 4.0.30319 SP1Rel) を使用しています。

次のライブラリと関係があるのだろうか:

Microsoft.VisualStudio.QualityTools.Common.dll
Runtime Version: v2.0.50727

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.Common.dll

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Runtime Version: v4.0.30319

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Microsoft.VisualStudio.QualityTools.Vsip.dll
v4.0.30319

C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Vsip\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Vsip.dll

これを機能させるための助けは大歓迎です。

4

3 に答える 3

1

新しいタイプを ( Windows レジストリに) 登録しましたか? チュートリアルには、その方法に関するセクションがあります。Row Test Test Type Extension: Registering your test type extension を参照してください。

問題が発生した場合は、 MSDN コード ギャラリーから完全なコードとレジストリ キーをダウンロードしてみてください。

于 2013-09-23T08:36:14.277 に答える
1

SpecFlowを使用して、テストをよりパラメーター化することを検討することをお勧めします。これは伝統的に BDD ツールですが、パラメーターを使用する再利用可能なステップを作成できます。

たとえば、次のようなステップを作成できます

"Given the user 'admin' exists."

そして、C#側では、次のような方法が得られます。

[Given(@"the user '(.*)' exists"]
public void GivenTheUserExists(string name)
{
    //create the user
}

今後は、そのステップの実装を書き直さなくても、任意の「機能ファイル」でステップを再利用できます。

于 2015-03-19T16:30:28.213 に答える