gpt4 book ai didi

c# - NUnit - 并行单元测试两个单独的测试

转载 作者:行者123 更新时间:2023-12-05 03:16:50 25 4
gpt4 key购买 nike

我知道 NUnit 并行运行测试,这不是这个问题的确切含义。在单个测试中,我可以在不同的端口上使用 TcpClient 打开两个本地套接字连接,它们可以在同一个单元测试中相互通信。问题是地址空间当然是由执行单元测试的线程共享的,所以它不能像我想要的那样模拟通过网络进行的通信。

如果我有一个名为 Test1 的测试和一个 TcpClient,并且在它运行时,我用另一个 TcpClient 运行 Test2,在这两个测试中我可以让两个单元测试相互交谈和通信 - 测试我的协议(protocol)我设计了单独的地址空间,这确实为我提供了我想要的网络模拟,并允许我进行正确的测试断言。

现在的问题是,有什么办法可以自动做到这一点?我想要一个可以运行 Test1 和 Test2 的测试,其中这两个测试通过各自的套接字进行通信,而不是同时手动启动它们。

最佳答案

NUnit 并非设计用于在不同进程中运行测试(我所知道的任何其他单元测试框架也不是)。它旨在在同一进程中启动尽可能多的测试,以提高性能(创建进程的成本很高)。

当然,这并不意味着不可能做到这一点,但这不是 NUnit 本身的领域。这个问题没有提供太多关于测试结构的信息,但我假设有一个用于服务器的测试程序集和另一个用于客户端的测试程序集。只有当它们同时运行时,测试才有效。

我会继续创建第三个测试程序集,该程序集仅启动其他两个程序集,真正手动创建流程,例如发射

dotnet test ServerUnitTests.dll
dotnet test ClientUnitTests.dll

[“集成测试”在这里会更好,但这是一个细节]

关于c# - NUnit - 并行单元测试两个单独的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74442164/

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