好吧,我的问题是当我尝试设置一个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() {...}
}


我遇到了同样的问题。

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

最佳答案

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

BrokenBaseTest

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

WorkedBaseTest

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

07-26 09:19