web-dev-qa-db-ja.com

MSTESTのDataTestMethodおよびDataRow属性

これらの属性に関するVisual Studio更新2についてのマイクロソフトのビデオを見ました。しかし、それらに関する他の情報を見つけることができず、それらを使用してビルドするプロジェクトを取得できません。

誰もがこれらの属性について、またはそれらを機能させる方法について何か知っていますか?

[DataTestMethod]
[DataRow("a", "b")]
[DataRow(" ", "a")]
public void TestMethod1(string value1, string value2)
{
    Assert.AreEqual(value1 + value2, string.Concat(value1, value2));
}
36
Simon Vane

私はこれが古い質問であることを知っていますが、 https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-で公開された良いチュートリアルがありますms-test /

簡単に言うと、MSTest.TestFrameworkMSTest.TestAdapterをインストールし、Microsoft.VisualStudio.QualityTools.UnitTestFrameworkへの参照を削除する必要があります。次に、[DataTestMethod]属性を使用してパラメーター化されたテストを示し、例に従って[DataRow]属性を使用してパラメーターを追加できます。 [DataRow]属性の値は、指定された順序でテストメソッドに渡されます。

[DataRow]属性の値はプリミティブである必要があるため、たとえばDateTimedecimalを使用できないことに注意してください。必要な場合は、この制限を回避する必要があります(たとえば、日付を表すDateTimeパラメーターの代わりに、年、月、日を表す3つの整数パラメーターを使用して、DateTimeテスト本体内)。

39
Tim

最後に、この機能が追加されました(まだプレリリース) 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
13
ironstone13

これは、WinRT/Metroの単体テストプロジェクト内でのみ利用可能で、現在はUpdate 2、Windows Phone 8で利用可能です。mstestを使用したすべてのテストで利用できない理由は謎です。

8
Simon Vane