如果从Windows或CentOS执行,则单元测试并行化会有所不同

时间:2019-02-08 09:50:38

标签: .net-core windows-10 centos7 xunit

我正在.NET Core 2.2中开发一个简化的ORM,并且编写了一些xUnit单元测试,旨在测试SQL Server数据库的创建/删除或基本的CRUD操作。我在Windows 10上,并且我也在Windows 10上运行一个CI环境。但是,最近,我在服务器上的CentOS 7上添加了一个CI环境,以检查由于.NET而使我的开发确实在不同的OS上运行核心框架。

我遇到的问题是我对单元测试的设计很差,并且它们是并发的。因此,我有一些测试正在尝试与测试数据库删除功能的测试并行执行一些CRUD操作,从而导致A transport-level error has occurred when receiving results from the server错误。

真正奇怪的是,我可以在本地环境(Windows 10)或Windows 10 CI环境中执行任意多次此测试,它永远不会失败。另外,如果更改连接字符串以将本地(Windows 10)单元测试连接到CentOS环境上托管的远程数据库,它也会通过。但是,当我的测试由CentOS CI运行程序运行时,或者当我通过SSH连接到CentOS服务器时手动运行时,它总是会失败。请注意,当从带有Visual Studio的Windows 10运行时,我可以从测试资源管理器中启用Run Tests In Parallel选项,测试始终会通过,而且似乎没有并行化。另外,我没有任何xUnit特定的配置文件,因此我在两种环境中都使用默认配置。

我不是要帮助我修复单元测试,而是要了解为什么我的测试似乎没有在Windows 10上并行执行,而从CentOS运行时却似乎是并行执行。 Windows不能执行其并行化工作可能会造成问题吗?

欢迎任何帮助。谢谢。

0 个答案:

没有答案