好吧,我的问题是当我尝试设置 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 的方法中(下面是示例的屏幕截图)。
但是,如果您将这些步骤转移到此类中带有 @test 注释的方法或 BaseTest 将听到的类的方法...那么一切都开始工作,并且使用文档中描述的所有方法(屏幕截图下面是一个例子)。
问题解决了,希望我描述清楚了本质。目前尚不清楚为什么在第一种情况下 Sekenide 拒绝工作并抛出异常。
关于java - Selenide + Junit 5 断言模式 = SOFT 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112439/