gpt4 book ai didi

C# MSTest 测试隔离

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:23 25 4
gpt4 key购买 nike

我正在使用 MSTest 编写调用 DLL 的集成测试。我需要根据测试加载具有不同值的 DLL,但 DLL 中的值在测试运行后仍然存在。

有没有办法隔离每个测试,以便它们各自在自己的进程或堆栈中运行?

添加代码:

[TestClass]
public class TestClass1
{
[TestMethod]
public void Test1()
{
LoadDLL(1);
Assert.AreEqual(1, ReadDLL());
}

[TestMethod]
public void Test2()
{
Assert.AreEqual(1, ReadDLL());
}
}

如果 Test1 先运行,则 Test2 会通过,即使应该需要调用 LoadDLL()。相反,如果 Test2 先运行,它将失败。

理想情况下,LoadDLL 会进入 [TestInitialize()] block 。

最佳答案

@usr1 appdomain 似乎不再存在于 .nrt 核心中,您必须使用程序集加载上下文。试试这个,然后尝试删除上下文 http://www.michael-whelan.net/replacing-appdomain-in-dotnet-core/

关于C# MSTest 测试隔离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50472742/

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