【发布时间】:2018-02-08 07:56:04
【问题描述】:
我在 MS 测试框架中使用数据驱动测试功能。 [DataSource] 属性指定表。 C# 方法被标记为 [TestMethod]。它有效,但有时我需要停止执行。例如,表有 100 行。如何显式(过早地)在某些情况下退出测试方法(停止其余的 DDT 调用),比如在调用此方法的第 50 行期间?
[DataSource("System.Data.SQLite", @"Data Source=D:\Test.db;", "TestTableName",
DataAccessMethod.Sequential)]
[TestMethod]
public void DataTest()
{
string userId = Convert.ToString(TestContext.DataRow["userid"]);
string telephone = Convert.ToString(TestContext.DataRow["telephone"]);
string email = Convert.ToString(TestContext.DataRow["email"]);
// .....
functionThatPerformsAssert(userId, telephone, email);
// .....
}
【问题讨论】:
-
你能显示测试方法代码吗?
-
抱歉 - 无法添加生产代码。添加了一些示例。但不太可能的代码会添加信息。
-
那么,你想退出(如中止)测试的执行吗?您(和 MS 测试)希望测试结果是“通过还是失败”?如果您只想让它退出并失败,请抛出异常!
-
断言测试失败后应该被标记为失败,然后应该跳过 50 条记录。我没有提到我需要退出/终止监督测试运行的进程。因此,在跳过测试后,预计正常流程 - 如果有任何测试方法排队执行,它们应该被执行。