0

我有一堆单元/集成测试,它们会在所有测试运行后创建一个报告。目前,我正在将硬编码响应传递给创建报告的方法。

我怎样才能得到测试方法的结果?这样我就可以将此结果作为响应传递。

在此处输入图像描述

看看测试输出如何向我们展示我想在测试方法中检索的测试结果。我知道这是可能的。我已经能够检索到测试名称,但无法获得结果。任何帮助都非常感谢。

注意:我使用的是普通的 MSTests

4

2 回答 2

0

When a test fails the Test Method is automatically aborted. You can use the CurrentTestOutcome property in the TestCleanup method. If you want to take the StackTrace you have to put all the method's code inside a try/catch block.

[TestClass]
public class TestClass
{
    [TestCleanup]
    public void TestCleanup()
    {
        // here you have access to the CurrentTestOutcome bot not on stacktrace
        if (TestContext.CurrentTestOutcome == UnitTestOutcome.Failed)
        {
            // do something
        }
    }

    [TestMethod]
    public void TestMethod()
    {
        try
        {
            // Your test code here
        }
        catch (Exception exception)
        {
            // here you have access to the StackTrace
            TestContext.WriteLine(exception.StackTrace);

            // You can also add it to the TestContext and have access to it from TestCleanup
            TestContext.Properties.Add("StackTrace", exception.StackTrace);
            // Or...
            TestContext.Properties.Add("Exception", exception);

            throw;
        }
    }
}
于 2013-07-15T07:11:54.850 回答
0

为了获得测试结果,您可以使用TestContext.CurrentTestOutcome属性。你会到达那里Passed,,Failed价值观Unknown。就堆栈跟踪而言,我认为您应该使用StackTraceclass.

于 2013-07-15T06:38:50.780 回答