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

时间:2009-10-27 09:35:29

标签: unit-testing parallel-processing

我正在考虑对我们的项目使用并行单元测试,并且想知道实际编写这种并行单元测试的最佳实践。

2 个答案:

答案 0 :(得分:5)

如果并行单元测试是指可以同时运行的测试,我可以给你的最重要的建议就是避免使用所谓的共享夹具。

本书xUnit Test Patterns描述了术语Fixture,它基本上可以描述为每个测试用例执行的整个上下文,包括持久和瞬态数据

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

保持共享夹具不可变(所谓的不可变共享夹具)将允许您并行运行测试,但更好的是,所谓的Fresh Fixtures(每个测试用例都有自己的Fixture)是线程安全的定义,因为只有测试用例本身可以访问Fixture。

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

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

答案 1 :(得分:4)

一些有趣的链接:

Organize Unit Tests

Running Unit Tests in Parallel

这个Stackoverflow问题中有一些有趣的答案。希望这会有所帮助。