如何在Junit 5中参数化每个带注释的方法的@beforeach/@AfterEach?此方法应该从传递的流或对象列表中获取参数。
假设您有一个基类BaseSmokeTest,其中在名为prepare()的@beforeach注释方法中初始化WebDriver。现在,LoginSmokeTest或LogoutSmokeTest等其他类扩展了BaseSmokeTest,因此它们不关心WebDriver初始化。
我想为每个浏览器运行参数化测试。对我来说,唯一的解决方案是使用字符串参数参数化prepare()方法,该参数将指定要使用的浏览器-void prepare(String browserName)
我尝试过使用ParameterResolver来解析准备方法的参数,但是如果我理解正确的话,ParameterResolver只解析@Beforeeach/@Aftereach方法的参数一次。
我还尝试参数化构造函数,但再次-ParameterResolver仅解析构造函数的参数一次。
我正在寻找这样的解决方案:
@ValueSource(strings = {"firefox", "chrome"})
@BeforeEach
public void prepare(String browserName) {
WebDriver driver = initializeWebDriver(browserName);
WebDriverRunner.initialize(driver);
}
@AfterEach
public void cleanup() {
WebDriverRunner.closeWebDriver();
}
编辑:我还应该声明这些参数化测试的所需功能是并行化——每个浏览器都应该在自己的会话中并行启动。
Edit2:我还应该提到BaseSmokeTest(尽管有这个名字)根本不包含任何测试,只是运行其他测试所需的Web驱动程序的初始化。测试只包含扩展BaseSmokeTest的类。
如果不同浏览器的数量相当少,那么可以使用简单的抽象测试类方法。这里有一个草图:
abstract class BaseSmokeTest {
abstract String getBrowserName();
@BeforeEach
public void prepare() {
WebDriver driver = initializeWebDriver(getBrowserName());
WebDriverRunner.initialize(driver);
}
@Test
void test1() {}
@Test
void test2() {}
}
class FirefoxSmokeTest extends BaseSmokeTest {
String getBrowserName() { return "firefox"; }
}
class ChromeSmokeTest extends BaseSmokeTest {
String getBrowserName() { return "chrome"; }
}
Jupiter现在将运行两个测试类:ChromeSmokeTest
和FirefoxSmokeTest
。BaseSmokeTest中的每个测试方法将运行两次,每个混凝土测试类一次。
我正在尝试为vertx相关的东西写一个测试用例。 获取以下错误: 请帮助解决这个问题。
我可以在没有任何特殊测试框架的情况下编写和执行Selenium脚本,但我希望使用JUnit5(因为我们依赖于其他工具),并且在使用JUnit4时从未见过这样的错误。 目前它是JUnit5,我在谷歌上搜索了一些想法,但不能解决这个问题。 使用、和的测试脚本:
我试图用测试将我的项目从使用JUnit4升级到JUnit5。升级后: @RunWith(VertXUnitRunner.Class)-->@ExtendWith(VertXExtension.Class) @BeforeClass-->@BeforeAll等 我的一个类在setUp方法中开始崩溃。 与此类似:没有为参数[io.vertx.ext.unit.testContext arg0]注册Pa
我有一个工作环境,包括我不管理的bom和JUnit5测试,除非我从如果我从它们不会被maven surefire插件拾取。我阅读了许多部分,并在一个较小的项目中进行了测试,它的工作和拾取,我不知道该在这篇文章中包含什么,因此您有足够的信息来查看问题所在。此外,如果有人能解释我阅读的导入的幕后内容,JUnit 4和5都需要使用surefire即 与版本 我很感激。 注意到 < li >我的测试都在s
我试图定义一个,如示例MockitoExtension所提供的,但无法成功地使用参数化的类实例。 期待着关于如何用在中实现接口的类的参数化实例测试接口的建议。
父页面 子组件 这样传递不对吗?