目標:的TestContext.TestName財產永遠不會改變
我想用TestContext.TestName屬性提取試驗是RAN的名字,這樣我的[TestCleanup]功能可以登錄的結果對我們的定製結果存儲庫,當每個測試完成時自動執行。
問題:
即使在我基礎「合理性檢查」,其中包含5次測試類似於下面的結構測試項目:
[TestMethod]
public void TestMethodX()
{
Console.WriteLine(String.Format("In Test '{0}'",_ctx.TestName));
Assert.IsTrue(true);
}
一類「初始化」像下面這套_ctx對我來說:
[ClassInitialize]
public static void ClassInit(TestContext Context)
{
_ctx = Context;
Console.WriteLine("In ClassInit()");
}
[注:Console.WriteLines純粹是對我有給掀掉將鼠標懸停並檢查數值/屬性等]]
_ctx.TestName
從未在測試運行中更改第一個測試的名稱,即如果我要運行所有五個測試('TestMethod1', 「TestMethod2」,「TestMethod3」,等等),他們所有的日誌「TestMethod1」他們在我的結果貯存庫測試名稱。 運行測試單獨它工作正常,但是這是沒有用的給我,因爲我需要能夠運行10的/ 100的/ 1000的對我的應用程序測試的,並且具有的TestContext處理測試名或我。
現在我已經嘗試了幾次,並在網上搜索負載和沒有任何人有這個問題,所以我可以:這個問題唯一的,有差「谷歌賦的技能,或者是做什麼真正愚蠢。希望這是有道理的,有人有答案。
由於提前,
安迪
感謝您的!完美地工作! :) – Robbo
歡迎您。 – Schaliasos
我得到了類似的問題,那麼我只是改變了'ClassInitialize'到'TestInitialize'取上下文參數。它編譯但測試告訴'TestInitialize'方法使用錯誤的簽名(它不能接受參數)。 爲什麼地球上的'如果這是應該被綁定到測試方法,而不是整個類ClassInitialize'will採取情境?爲什麼'TestInitialize'不接受上下文?如果'ClassInitialize'接受'TestContext'作爲參數,我們怎麼能猜測我們需要添加一個屬性? 令人難以置信的不直觀。 – fernacolo