gpt4 book ai didi

c# - 在 MStest 中执行完所有测试后是否可以运行代码

转载 作者:IT王子 更新时间:2023-10-29 04:41:11 26 4
gpt4 key购买 nike

我正在编写编码的 UI 测试,如果应用程序尚未打开,我会打开它。然后,如果其中一个失败,我关闭应用程序,问题是我在多个项目中进行了多个测试,有没有办法在所有测试执行完毕后关闭应用程序? testSettings 文件中可能有什么东西吗?

如果这有帮助的话,我所有的测试类都派生自一个 codeduiTestBase,这就是我设置我所拥有的设置的方式。

我不想在每次测试运行之前和之后打开和关闭应用程序,因为它是一个大应用程序,加载时间太长。

最佳答案

是的,这是可能的。为此,您可以使用 AssemblyCleanup 属性:

Identifies a method that contains code to be used after all tests in the assembly have run and to free resources obtained by the assembly.

以下是根据执行时间排列的所有 MSTest 方法的概述:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using SampleClassLib;
using System;
using System.Windows.Forms;

namespace TestNamespace
{
[TestClass()]
public sealed class DivideClassTest
{
[AssemblyInitialize()]
public static void AssemblyInit(TestContext context)
{
MessageBox.Show("AssemblyInit " + context.TestName);
}

[ClassInitialize()]
public static void ClassInit(TestContext context)
{
MessageBox.Show("ClassInit " + context.TestName);
}

[TestInitialize()]
public void Initialize()
{
MessageBox.Show("TestMethodInit");
}

[TestCleanup()]
public void Cleanup()
{
MessageBox.Show("TestMethodCleanup");
}

[ClassCleanup()]
public static void ClassCleanup()
{
MessageBox.Show("ClassCleanup");
}

[AssemblyCleanup()]
public static void AssemblyCleanup()
{
MessageBox.Show("AssemblyCleanup");
}

[TestMethod()]
[ExpectedException(typeof(System.DivideByZeroException))]
public void DivideMethodTest()
{
DivideClass.DivideMethod(0);
}
}
}

参见:MSTest-Methods

关于c# - 在 MStest 中执行完所有测试后是否可以运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14775574/

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