C#TCP单元测试SocketException可以';t运行所有测试
本文关键字:运行 测试 单元测试 SocketException 可以 C#TCP | 更新日期: 2023-09-27 18:27:53
我有一个相当奇怪的问题。我有一些单元测试是为了测试我正在处理的一些TCP通信中抛出的异常。就个人而言,所有的测试都能工作。然而,如果我尝试按顺序运行它们,第一个测试通过了,剩下的所有测试都失败了。我不知道为什么会发生这种事。我每次都在[TestInitialize]中创建一个新的套接字。我想听众可能只是挂断了,所以我在测试开始时设置了10秒的等待时间,但仍然失败。但是,当我分别运行测试一和测试二(间隔约1秒)时,一切都正常。
知道是什么原因造成的吗?我的直觉是,当整个测试完成时,侦听端口会被清除,所以当我按顺序运行它们时,我无法将新的套接字重新绑定到该端口。
"每个套接字地址(协议/网络地址/端口)通常只允许使用一次"
我发现了错误。我一直在制作套接字并将其绑定到TestInitialize属性下。我需要做的是在ClassInitialize属性下创建套接字,使其始终存在。然后我在TestInitialize区域打开我的阅读线程。