Junit 单元测试的单芯限制
我有一个问题,我的单元测试目前在我的开发机器(多核机器)上通过,但同样的代码在预生产(单核机器)中失败。Junit 单元测试的单芯限制,junit,concurrency,Junit,Concurrency,我有一个问题,我的单元测试目前在我的开发机器(多核机器)上通过,但同样的代码在预生产(单核机器)中失败。 为了在我的开发机器上获得一个平等的环境,是否有可能限制单元测试可用的内核数量?不幸的是,我无法在pre-prod机器上运行单元测试 有几种方法可以做到这一点 使用任务集命令 Taskset命令将特定进程的所有线程绑定到内核的某个子集。使用起来很简单:taskset-c0“您的命令” 这将把每个线程绑定到第一个CPU 因此,为了做到这一点,您需要能够通过命令行以编程方式运行单元测试。如果使
为了在我的开发机器上获得一个平等的环境,是否有可能限制单元测试可用的内核数量?不幸的是,我无法在pre-prod机器上运行单元测试 有几种方法可以做到这一点
- 使用任务集命令
- 使用亲缘锁
检查一下,因为它是最流行的java亲和锁工具。您的测试是否显式调用并行性?更一般地说,这听起来像是在说“我的测试通过了,但应用程序失败了,所以我需要消除内核之间的差异”。为什么你确定原因不是别的?你可以从另一个线程中获得一些背景信息:基本上,我只想限制内核的数量,看看我是否能在单元测试中引发问题,并理解它在生产中失败的原因。我真的不知道问题是什么…是的,这似乎是合理的。谢谢,这帮了我正确的方向。对于osx上不支持taskset的任何人(如我),请在此处找到相应的步骤