現在実行中のテスト名にアクセスできるグローバル状態はどこかにありますか?
ファイルをディレクトリに出力して読み戻すテストがあります。各テストで再生するディレクトリを作成してからクリーンアップしたいのですが、その名前をプッシュしたくありません(一意にする必要があります。次に、各テストで一意に保つようにします。 GUIDを使用することもできますが、ヘルパーメソッドがGUIDをプッシュする必要なしに、「これはテストファイルを格納する場所です」と想定できるようにしたいと思います。 、これはどこかのグローバル状態を促進します。
基本的に、TestRunner.Current.CurrentTest.Name
のような呼び出しが必要です。そのようなものは存在しますか?
私はまだ2.5.7にアップグレードしていませんが、探しているものを提供しているように見えるTestContext
クラスが含まれています: http://www.nunit.org/index .php?p = releaseNotes&r = 2.5.7
(c#を想定)
NUnit.Framework.TestContext.CurrentContext.Test.Name
または
NUnit.Framework.TestContext.CurrentContext.Test.FullName
または、本当に怠け者で、TestCaseSourceを使用してテストを実行していない場合(@aolszowkaに感謝):
this.GetType().ToString()
テストごとに1つのメソッドを想定すると、NUnitコードでは、リフレクションを使用してスタックトレースからメソッド名を取得できます。
このファイルロギングを行うために他のメソッドによって呼び出されるNUnitコードにヘルパーメソッドを記述する場合、この構文を使用して前のメソッドをチェックできます。
string MethodName = new StackFrame(1).GetMethod().Name;
詳細については、 質問44153「リフレクションを使用して現在実行中のメソッドの名前を見つけることができますか?」 の回答を参照してください。