我試圖擴展.NET TestClass
。我發現我需要擴展以下抽象類:TestClassExtensionAttribute
和TestExtensionExecution
。 TestExtensionExecution
也要求我執行ITestMethodInvoker
。我做了以下,但是當我運行測試方法時,我的斷點都沒有被擊中(無論是在測試還是擴展中),這意味着測試類永遠不會到達我的擴展,並且顯然在更早的時候失敗。 有人可以指點我缺少什麼,或者如何擴展TestClass
?如何擴展.NET TestClass
擴展:
class CoreTestClass : TestClassExtensionAttribute
{
public override Uri ExtensionId
{
get { throw new NotImplementedException(); }
}
public override TestExtensionExecution GetExecution()
{
return new TestCore();
}
}
class TestCore: TestExtensionExecution
{
public override ITestMethodInvoker CreateTestMethodInvoker(TestMethodInvokerContext context)
{
return new AnalysisTestMethodInvoker();
}
public override void Dispose()
{
}
public override void Initialize(TestExecution execution)
{
execution.OnTestStopping += execution_OnTestStopping;
}
void execution_OnTestStopping(object sender, OnTestStoppingEventArgs e)
{
throw new NotImplementedException();
}
}
class AnalysisTestMethodInvoker : ITestMethodInvoker
{
public TestMethodInvokerResult Invoke(params object[] parameters)
{
throw new NotImplementedException();
}
}
測試:
[CoreTestClass]
public class HomeControllerTest
{
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new HomeController();
// Act
ViewResult result = controller.Index() as ViewResult;
// Assert
Assert.AreEqual("Modify this template to jump-start your ASP.NET MVC application.", result.ViewBag.Message);
}
}
你有沒有考慮過提到的第4期[這裏](http://www.digitaltapestry.net/blog/extending-mstest)? – BartoszKP
我目前還沒有看過這篇文章。我會看看它,也許它會爲我提供一個解決方案。如果我找到一個,我會將其作爲答案發布。非常感謝! –
它可能看起來很愚蠢,但是這不是由於在擴展類聲明之前缺少「公共」嗎? – Bedouin