Java 运行多个类时,只有类中的第一个测试失败

Java 运行多个类时,只有类中的第一个测试失败,java,spring-boot,junit,Java,Spring Boot,Junit,在intellij中运行多个测试时,我遇到了一个非常奇怪的问题。我在课堂上的第一次测试失败了,因为jwt显然是无效的,但在同一个课堂上的第二次测试中,使用同一个jwt一切都正常 如果我尝试单独运行每个类,一切正常,如果我从终端运行mvn test,所有测试都会通过 我还尝试将分叉模式设置为类,然后测试通过,但每个测试都是单独运行的,因此需要一段时间,而且我无法在分叉模式下使用覆盖率 编辑: 这是我的init和第一个测试代码 @BeforeAll void init() thro

在intellij中运行多个测试时,我遇到了一个非常奇怪的问题。我在课堂上的第一次测试失败了,因为jwt显然是无效的,但在同一个课堂上的第二次测试中,使用同一个jwt一切都正常

如果我尝试单独运行每个类,一切正常,如果我从终端运行
mvn test
,所有测试都会通过

我还尝试将
分叉模式设置为
类,然后测试通过,但每个测试都是单独运行的,因此需要一段时间,而且我无法在
分叉模式下使用覆盖率

编辑: 这是我的init和第一个测试代码

    @BeforeAll
    void init() throws Exception {
        token = login(new LoginRequest("user", "123"));
    }

    private String login(LoginRequest loginRequest) throws Exception {
        ResultActions resultActions = mockMvc.perform(post("/api/auth/login")
                .contentType(MediaType.APPLICATION_JSON)
                .content(objectMapper.writeValueAsString(loginRequest)))
                .andExpect(status().isOk());
        return resultActions.andReturn().getResponse().getHeader(JwtUtilities.HEADER);
    }

    @Test
    @Order(1)
    void findAllTeamsByCreator_ok() throws Exception {
        mockMvc.perform(get(PATH)
                .contentType(MediaType.APPLICATION_JSON)
                .header(JwtUtilities.HEADER, token))
                .andExpect(status().isOk())
                .andExpect(content().contentType("application/hal+json"))
                .andExpect(jsonPath("$._embedded.teamDtoList").isNotEmpty());
    }
所以,我没有在测试中设置任何状态,如果我创建这样的测试

@Test
@Order(1)
void test() {}
然后其他一切都保持不变,我的测试就可以了。就像第一次测试中没有加载某个东西一样


我真的很奇怪为什么
mvn测试
工作得很好,但是在Intellij中我有一个bug

这听起来像是您的测试用例中的“状态已满”,所以第一个测试中的某些东西正在初始化剩余测试用例中需要的东西

在使用JUnits时,您可以确保所有初始化都是在框架支持的“Before”类型方法中完成的

查看第一个测试用例的代码以确定什么是“state”,这将很有帮助