unit-testing - 编写并行单元测试的最佳实践

标签 unit-testing parallel-processing

我正在考虑为我们的项目使用并行单元测试,并且想知道有关实际编写此类并行单元测试的最佳实践。

最佳答案

如果说并行单元测试是指可以同时运行的测试,那么我能为您提供的最重要建议是避免使用所谓的共享夹具。

xUnit Test Patterns一书描述了“夹具”一词,基本上可以将其描述为每个测试用例执行的整个上下文,包括持久性数据和 transient 数据。

共享夹具表示测试用例在运行时共享某些上下文。如果该上下文是可变的,则可能会发生竞争条件。

保持共享夹具不变(所谓的不可变共享夹具)将使您能够并行运行测试,但是更好的是,所谓的“新鲜夹具”(每个测试用例都有自己的夹具)从定义上讲是线程安全的,因为只有测试用例本身可以访问治具。

共享装置的示例包括使用共享数据库的任何类型的测试,但还包括在被测系统(SUT)或测试本身中内存处于静态状态的测试,因此您需要避免这种情况。

您还应该记住,如果您的SUT访问共享(静态)数据,则该访问本身必须是线程安全的。

关于unit-testing - 编写并行单元测试的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629666/

相关文章:

在 Haskell 中对惰性表达式中未定义的值进行单元测试

c++ - MPI 从属进程在没有更多工作时挂起

c++ - 如何优化C++程序运行MPI?

java - 在 IntelliJ IDEA 中执行单个 JUnit 测试用例失败

c# - 在 ASP.NET MVC 中测试时如何访问 JsonResult 数据

javascript - 如何测试 Angular mat-nav-list 是否包含元素?

.net - 如何为异步方法编写单元测试用例?

c - 并行效率下降不一致

python - 从哪里开始分布式计算/并行处理? ( python /C)

maven - 如何运行两个具有不同配置的 maven surefire 插件?