java - Selenide + Junit 5 断言模式 = SOFT 不起作用

标签 java junit5 selenide

好吧,我的问题是当我尝试设置 Selenide 变量assertionMode = SOFT 时,我的测试被忽略并且 Selenide 抛出异常:

java.lang.IllegalStateException: Using soft asserts, but without @SoftAsserts annotation

例如,当我使用 Selenide 文档中的示例时:

在测试类上方写注解

@ExtendWith(SoftAssertsExtension.class)
class IssueCreationTest extends BaseTest {

@Test
void test() {...}
}

或将 SoftAssertsExtension 定义为类变量

class Tests {

@RegisterExtension 
static SoftAssertsExtension softAsserts = new SoftAssertsExtension();

@Test
void test() {...}
}

我也遇到了同样的问题。

也许有人遇到过这个问题,也许有人知道我该如何解决它?

最佳答案

嗯!当我将 BaseTest 描述为某种必须在测试开始之前完成的 @BeforeAll 和 @afterall 方法的逻辑和行为时,脚本在第一个方法上崩溃... click (); ...都在带有注释 @BeforeAll 和 @afterall 的方法中(下面是示例的屏幕截图)。

BrokenBaseTest

但是,如果您将这些步骤转移到此类中带有 @test 注释的方法或 BaseTest 将听到的类​​的方法...那么一切都开始工作,并且使用文档中描述的所有方法(屏幕截图下面是一个例子)。

WorkedBaseTest

问题解决了,希望我描述清楚了本质。目前尚不清楚为什么在第一种情况下 Sekenide 拒绝工作并抛出异常。

关于java - Selenide + Junit 5 断言模式 = SOFT 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112439/

相关文章:

java - 如何使用 JUnit 5 为项目中的所有测试初始化​​基类中的静态资源?

java - @CucumberOptions 在 Cucumber-junit-platform-engine 中

Java反射方法获取带注释的字段作为SelenideElement

javascript - 在 java 中处理 IE 的 selenium/nide 中的右键单击

JRE 升级后 Java Applet 无法运行

java - 父类(super class)型的 hibernate 查询返回子类型的结果,如何仅返回父类(super class)型的结果?

java - 访问嵌套接口(interface)数据变量

java - 如何衡量JAVA MetaSpace?

maven - java.lang.NoClassDefFoundError : org/junit/platform/commons/PreconditionViolationException when trying run junit5 test with maven

java - 无法选择下拉选项(selenide/java)