JUnit 4 测试执行按照它们在 class 中的编程顺序
JUnit 4 Test Execution in the order how they are programmed in class
我正在使用 JUnit 和 RestAssured 创建 API 测试。
我想知道是否有一种方法可以按照它们在 class 文件中的写入顺序执行测试用例。目前,当我执行它们时,它似乎是随机的。
我尝试 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
并将 @Order(xy)
添加到测试中,但我认为这对我没有帮助。
只是描述我的问题:
我在 class 中按以下顺序进行了多项测试:Post 测试、获取测试、删除测试。正如您可能已经知道的那样,我希望删除测试在最后执行。
有办法做到吗?
谢谢
简答:没有。 IMO 甚至不可能,因为您的方法顺序在生成的字节码中不可见,但我不是字节码专家,可能是错误的。
注释 @TestMethodOrder
是 JUnit Jupiter (JUnit 5) 的一部分,因此它不适用于 JUnit 4 测试。 JUnit 4 有一个注释 @FixMethodOrder
允许您按字母顺序执行测试方法。通过在您的测试名称前加上一些像 a_
这样的字符串,您可以实现您想要的。我知道很难看。
我正在使用 JUnit 和 RestAssured 创建 API 测试。
我想知道是否有一种方法可以按照它们在 class 文件中的写入顺序执行测试用例。目前,当我执行它们时,它似乎是随机的。
我尝试 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
并将 @Order(xy)
添加到测试中,但我认为这对我没有帮助。
只是描述我的问题:
我在 class 中按以下顺序进行了多项测试:Post 测试、获取测试、删除测试。正如您可能已经知道的那样,我希望删除测试在最后执行。
有办法做到吗?
谢谢
简答:没有。 IMO 甚至不可能,因为您的方法顺序在生成的字节码中不可见,但我不是字节码专家,可能是错误的。
注释 @TestMethodOrder
是 JUnit Jupiter (JUnit 5) 的一部分,因此它不适用于 JUnit 4 测试。 JUnit 4 有一个注释 @FixMethodOrder
允许您按字母顺序执行测试方法。通过在您的测试名称前加上一些像 a_
这样的字符串,您可以实现您想要的。我知道很难看。