如何扩展 .NET TestClass
本文关键字:NET TestClass 扩展 何扩展 | 更新日期: 2023-09-27 18:36:30
我正在尝试扩展.NET TestClass
。我发现我需要扩展以下抽象类:TestClassExtensionAttribute
和TestExtensionExecution
。 TestExtensionExecution
还需要我实现一个ITestMethodInvoker
。我已经完成了以下操作,但是当我运行测试方法时,没有命中任何断点(无论是在测试中还是在扩展中),这意味着测试类永远不会到达我的扩展,并且显然在较早的点失败。有人可以指出我缺少什么或如何扩展的工作示例吗 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);
}
}
这篇
MSDN 文章介绍如何实现TestClassExtensionAttribute
: 扩展 Visual Studio 单元测试类型
相关问题:MsTest 是否不支持在测试基类中定义 TestMethod?
根据您要完成的工作,您可以使用标有 [TestClass]
的标准抽象类。 派生类型将继承TestClassAttribute
,但派生类型也必须标有 [TestClass]
才能与 [TestInitialize]
和 [TestCleanup]
一起使用。
请参阅对单元测试类使用基类。