步骤如下:

  • pom.xml中添加junit5依赖(不再兼容junit4),删除junit4依赖
  • 替换代码。【不建议,操作繁琐】在idea中ctrl+shift+R全局替换,替换时只选java文件
    • org.junit.Test -> org.junit.jupiter.api.Test
    • @BeforeClass -> @BeforeAll
    • org.junit.BeforeClass -> org.junit.jupiter.api.BeforeAll
    • @After -> @AfterAll
    • org.junit.After -> org.junit.jupiter.api.AfterAll
    • @Before -> @BeforeAll
    • org.junit.Before -> org.junit.jupiter.api.BeforeAll
    • @After -> @AfterAll
    • org.junit.After -> org.junit.jupiter.api.AfterAll
    • org.junit.Assert -> org.junit.jupiter.api.Assertions
  • 替换代码。【建议,命令行操作】使用sed替换。
# 替换import
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.Test/org.junit.jupiter.api.Test/g" file
# 替换@BeforeClass
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@BeforeClass/@BeforeAll/g" file
# 替换BeforeClass的全包名
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.BeforeClass/org.junit.jupiter.api.BeforeAll/g" file
# 替换@AfterClass
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@AfterClass/@AfterAll/g" file
# 替换AfterClass的全包名
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.AfterClass/org.junit.jupiter.api.AfterAll/g" file
# 替换@Before
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@Before/@BeforeEach/g" file
# 替换Before的全包名
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.Before/org.junit.jupiter.api.BeforeEach/g" file
# 替换@Before为@BeforeEach时,会把@BeforeAll替换@BeforeEachAll,此处再替换回来
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@BeforeEachAll/@BeforeAll/g" file
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@After/@AfterEach/g" file
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.After/org.junit.jupiter.api.AfterEach/g" file
# 替换@After为@AfterEach时,会把@AfterAll替换@AfterEachAll,此处再替换回来
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/@AfterEachAll/@AfterAll/g" file
# 替换assert
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/Assert.assert/Assertions.assert/g" file
# 替换assert的包名
find ./ -type f -name "*.java" | xargs -I file  sed -i "s/org.junit.Assert/org.junit.jupiter.api.Assertions/g" file

find ./ -type f -name "*.java" | xargs -I file  sed -i "s/Assertions.assertThat/MatcherAssert.assertThat/g" file