หากคุณใช้พื้นที่ฮีปจนหมดในระหว่างการทดสอบ JUnit surefire (หรือไม่ปลอดภัย) การเปลี่ยน MAVEN_OPTS อาจไม่ช่วยคุณ ฉันพยายามกำหนดค่าต่างๆใน MAVEN_OPTS ต่อไปโดยไม่มีโชคจนกระทั่งพบโพสต์นี้ที่แก้ไขปัญหาได้
โดยทั่วไปแล้ว JUnits จะแยกออกเป็นสภาพแวดล้อมของตนเองและละเว้นการตั้งค่าใน MAVEN_OPTS คุณต้องกำหนดค่า surefire ใน pom ของคุณเพื่อเพิ่มหน่วยความจำเพิ่มเติมสำหรับ JUnits
หวังว่าจะสามารถช่วยคนอื่นได้บ้าง!
แก้ไข: การคัดลอกโซลูชันจากบล็อกของ Keith Chapmanในกรณีที่ลิงก์หยุดทำงานในบางวัน:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms256m -Xmx512m</argLine>
<testFailureIgnore>false</testFailureIgnore>
<skip>false</skip>
<includes>
<include>**/*IntegrationTestSuite.java</include>
</includes>
</configuration>
</plugin>
อัปเดต (5/31/2017): ขอบคุณ@johnstosh ที่ชี้ให้เห็นสิ่งนี้ - surefire มีการพัฒนาขึ้นเล็กน้อยตั้งแต่ฉันใส่คำตอบนี้ไว้ที่นั่น นี่คือลิงก์ไปยังเอกสารประกอบและตัวอย่างโค้ดที่อัปเดต (บรรทัดอาร์กิวเมนต์ยังคงเป็นส่วนสำคัญสำหรับคำถามนี้):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
</systemPropertyVariables>
<workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory>
</configuration>
</plugin>