これらの属性に関するVisual Studio更新2についてのマイクロソフトのビデオを見ました。しかし、それらに関する他の情報を見つけることができず、それらを使用してビルドするプロジェクトを取得できません。
誰もがこれらの属性について、またはそれらを機能させる方法について何か知っていますか?
[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}
私はこれが古い質問であることを知っていますが、 https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-で公開された良いチュートリアルがありますms-test /
簡単に言うと、MSTest.TestFramework
とMSTest.TestAdapter
をインストールし、Microsoft.VisualStudio.QualityTools.UnitTestFramework
への参照を削除する必要があります。次に、[DataTestMethod]
属性を使用してパラメーター化されたテストを示し、例に従って[DataRow]
属性を使用してパラメーターを追加できます。 [DataRow]
属性の値は、指定された順序でテストメソッドに渡されます。
[DataRow]
属性の値はプリミティブである必要があるため、たとえばDateTime
やdecimal
を使用できないことに注意してください。必要な場合は、この制限を回避する必要があります(たとえば、日付を表すDateTime
パラメーターの代わりに、年、月、日を表す3つの整数パラメーターを使用して、DateTime
テスト本体内)。
最後に、この機能が追加されました(まだプレリリース) https://blogs.msdn.Microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with- mstest-v2 /
基本的に、2つのことを行う必要があります。
1)2つのNuGetパッケージをインストールします(バージョンは重要ではありませんが、これは私が持っているものです)
<package id="MSTest.TestAdapter" version="1.1.5-preview" targetFramework="net452" />
<package id="MSTest.TestFramework" version="1.0.6-preview" targetFramework="net452" />
2)古いテストライブラリのrefenreceを削除します。これは、同じ名前空間で同じ属性が定義されているためです-これは下位互換性を実現するために行われました
Microsoft.VisualStudio.QualityTools.UnitTestFramework
これは、WinRT/Metroの単体テストプロジェクト内でのみ利用可能で、現在はUpdate 2、Windows Phone 8で利用可能です。mstestを使用したすべてのテストで利用できない理由は謎です。