我正在考虑为我们的项目使用并行单元测试,并且想知道有关实际编写此类并行单元测试的最佳实践。
最佳答案
如果说并行单元测试是指可以同时运行的测试,那么我能为您提供的最重要建议是避免使用所谓的共享夹具。
xUnit Test Patterns一书描述了“夹具”一词,基本上可以将其描述为每个测试用例执行的整个上下文,包括持久性数据和 transient 数据。
共享夹具表示测试用例在运行时共享某些上下文。如果该上下文是可变的,则可能会发生竞争条件。
保持共享夹具不变(所谓的不可变共享夹具)将使您能够并行运行测试,但是更好的是,所谓的“新鲜夹具”(每个测试用例都有自己的夹具)从定义上讲是线程安全的,因为只有测试用例本身可以访问治具。
共享装置的示例包括使用共享数据库的任何类型的测试,但还包括在被测系统(SUT)或测试本身中内存处于静态状态的测试,因此您需要避免这种情况。
您还应该记住,如果您的SUT访问共享(静态)数据,则该访问本身必须是线程安全的。
关于unit-testing - 编写并行单元测试的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629666/