2017-01-17 14 views
0

を取得できません私はテストで「カテゴリー」プロパティを利用しようとしていますが、私は取得しようとするたびに、初心者プログラマだとC#NUnitの - カテゴリのプロパティ

に非常に新しい心の中で裸くださいそれはどんな意味でも私は運がない。失敗するか、空白として返されます。私はそれを正しく読んでいないと思うが、私はそれについての情報を見つけることができない。

私のテストは、次のようになります。今のところ

[TestCase(TestName = "Testing Purposes Only")] 
[Category("TESTING")] 
public void testingPurposesOnly() 
{ 
    //Some testing code 
} 

、私がやりたいすべてが現在のテストのカテゴリ値を参照できるようにすることです。私はこのようにしています:

LogMsg(TestContext.CurrentTest.Test.Property["Category"]); 

これはカテゴリの 'リスト'を返すことを実現しましたか?私が言ったように私は初心者です!

私ができることを望むのは、テストヘッダーに設定したカテゴリにアクセスして、他のものに文字列として渡すことだけです。これを行う最善の方法は何ですか?

ありがとうございます!

答えて

0

CategoryAttributesカテゴリのプロパティを作成します。どちらの人でも、テストのカテゴリリストが表示されます。

しかし、行間を読んで、私はあなたがを実行するテストを引き起こしたカテゴリが欲しいと思います。申し訳ありませんが、あなたはそれを得ることができません。

  1. カテゴリのためテストが実行されていない可能性があります。おそらく名前で選択されたか、すべてのテストを実行する一部として実行された可能性があります。テストは、カテゴリとおそらく名前のような他のものの論理的な組み合わせでプロパティを選択されている可能性があり

  2. など

  3. このすべては、ランナーのビジネスです。それを鈍くするために、あなたのテストはそれを扱うビジネスはありません。 NUnitフレームワークは、テストの実行時に指定されたカテゴリやその他のフィルタを認識し、それらをXMLレポートに含めます。 「この特定のテストが選択されたため...」などの情報は表示されません。

  4. ログやレポートを作成しようとしています。 NUnitアーキテクチャの目的は、そのコードを結果ファイルまたはエンジン拡張に読み込む別のプログラムに入れることです。テスト自体は、それを実行したランナーが、それほど理由を知らないことさえありません。

あなたは初心者ですから、私はあなたにそれを拡張しようとする前にプレーンなバニラNUnitをしばらく使用することをお勧めします。 :-)

+0

チャーリーさん、ありがとうございました。あなたは当然ですが、テストのカテゴリーを取って外部のレポートツール(エクステントレポート)に送信できるので、そのツールで結果を分類することができます。これを行うために私はすべてのテストで別々の変数を設定することができます。以前に書かれたすべてのテストが自動的にレトロフィットするように、カテゴリを使用したいと思っていました。しかし、情報をありがとう、私は多くの時間を無駄に節約! –

0

たぶん、あなたはまっすぐの道を行くと、リフレクションを使用してプロパティを抽出することができます。テストに

public class TestClass 
{ 
    [Category("TESTING")] 
    public void TestMethod() 
    { 
    var method = typeof(TestClass).GetRuntimeMethod(nameof(TestClass.TestMethod)), new Type[]{}); 
    var attribute = method.GetCustomAttribute<Category>(); 
    } 
} 
+0

お返事ありがとうございます。しかし、私はそれを完全に理解するためにいくつかの読書をしなければならないと思う。それは非常に簡単だと思われるものを抽出する複雑な方法のようです? たとえば、テスト名の場合は、次のように簡単です。 var name = TestContext.CurrentTest.Test。名; カテゴリを抽出することは、同じように単純であると思っていましたか?私が言ったように、初心者 –

+0

私は、実行中テストの正確なカテゴリを取得する方法がないことをよく知っているようです。使用可能なカテゴリのコレクションのみを取得できます。これは、メソッドから属性を取得するためのサンプル反映です。おそらく正しい解決策ではないかもしれませんが、うまくいくかもしれません。 – VitaliyK

関連する問題