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

Bre*_*gby 9 parallel-processing unit-testing

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

Mar*_*ann 5

如果通过并行单元测试你的意思是可以同时运行的测试,我可以给你的最重要的建议是避免所谓的共享夹具.

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

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

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

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

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