java - 将所有测试项目设置为并行 SpringBoot 和 junit 后并发修改异常
问题描述
运行所有的 java 测试需要很长时间才能完成。
因此解决方案是使用多个线程并行运行所有测试,以运行@RunWith(ParallelSuite.class)
所有类中使用的函数。
但问题是有些函数在并行运行时使用相同的资源。所以它抛出一个ConcurrentModificationException
. 解决方案是设置此功能并按顺序运行它们。
在将spring boot项目中的所有junit测试配置为使用ParallelSuite并行工作之后,如何隔离某些功能以按顺序工作,否则还有其他解决方案可以做到这一点。
解决方案
用于synchronized
需要一次由一个线程访问的函数,或者您可以在单个函数中使用:
void runSync() {
synchronized (this) {
count = count + 1;
}
}
您可能还应该阅读这篇文章。
推荐阅读
- python - 从 CSV 文件读取时,熊猫如何处理时区?
- firebase - 电子邮件链接身份验证。如何使用动态链接注册?
- laravel - 将 laravel-backup 包与 cron 一起使用时,laravel-dropbox-driver 引发异常
- excel - 用值替换数据透视表以过滤和删除行
- java - 如何使用基于意图的 URI 打开不和谐服务器邀请?
- php - 从相关数据库表中回显嵌套的 JSON 数组?
- python - 将系列转换为字符串类型 - 当前策略不起作用
- html - 浏览器如何确定什么是“移动”站点与什么是“桌面”站点?
- angular - 如果图像在 Angular 中太大,如何获取图像宽度/高度?
- c# - 着色器可以旋转形状以面对相机吗?