gpt4 book ai didi

c# - 在 ClassCleanup 中访问 CurrentTestOutcome?

转载 作者:行者123 更新时间:2023-11-30 20:59:25 25 4
gpt4 key购买 nike

使用 C# 4.0。我有一个单元测试,我需要在其中创建一个临时数据库。这是在类初始化期间完成的:

[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
// Create database!
}

[ClassCleanup()]
public static void MyClassCleanup()
{
// Remove database IF CurrentTestOutcome == UnitTestOutcome.Passed
}

问:如何从我的 ClassCleanup 方法中读取 CurrentTestOutcome 值?

最佳答案

我建议您创建一个可以从 MyClassCleanup 访问的静态标志,并在遇到错误时在测试清理期间设置它。你类的类似以下内容:

[TestClass]
public class MyTests {
static bool _testFailed;

[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
// Create database!
_testFailed = false;
}

[ClassCleanup()]
public static void MyClassCleanup()
{
if(_testFailed == false) {
// Remove database IF CurrentTestOutcome == UnitTestOutcome.Passed
}
}

[TestCleanup()]
public void MyTestCleanup() {
if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed) {
_testFailed = true;
}
}

public TestContext TestContext { get; set; }

}

我建议采用上述方法,因为我的理解是,在您的类清理中,引用 CurrentTestOutcome 从那以后不会真正有多大用处。它只包含要运行的最后一个测试的状态,而不是类中所有测试的组合结果。

关于c# - 在 ClassCleanup 中访问 CurrentTestOutcome?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com