gpt4 book ai didi

java - 参数化参数化测试或参数化套件,包含之前和之后

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:08 24 4
gpt4 key购买 nike

我有一个@Parameterized JUnit 测试,一切正常。现在,我尝试创建一个新测试,针对 20 个数据库配置运行相同的 @Parameterized 测试一次。

网上查了一下,有很多人提出这个问题,但似乎没有一个令人满意的解决方案。我查看了 Suite,但它无法运行参数化测试,并且没有任何可以在套件测试之间运行以准备下一个套件测试的注释。

标准参数化类:

@RunWith(Parameterized.class)
public class MyParameterizedTest {
// works as normal
}

这是我正在寻找的一些伪代码:

@RunWith(RunParameterizedLots.class)
@ParameterizedClassToTest(MyParameterizedTest.class)
public class RunParameterizedLotsOfTimes<T> {

@ListOfTestStuff
public List<T> getList() {
return list of T;
}

@BeforeRunningMyParameterizedTest
public void beforePtest(T i) {
setupDatabaseConfig(i);
}

@AfterRunningMyParameterizedTest
public void afterPtest() {
teardownDatabaseConfig(i);
}

}

这些都没有写出来,我花了 2 天阅读 JUnit 文档,但似乎并没有更接近。 4.12 的发行说明谈论了 @UseParametersRunnerFactory ,看起来它可能会有所帮助,还有一些关于新的 BlockJUnit4ClassRunnerWithParameters 的内容,但似乎没有任何如何使用它的示例。

我可以创建一个“@RunWith(Parameterized.class)”类,将 1,2,3,4 提供给自身,然后如何将子参数化测试链接到 JUnit 子系统中,使其看起来不错并提供合理的显示。

我希望您能从我的华夫饼问题中看出我正在尝试做什么,我只是不知道从哪里开始,或者是否有人已经完成了这项工作?

最佳答案

开箱即用,无法参数化 JUnit 测试套件,因为两者都是 Runner,并且您的测试中可能只有一个 @RunWith() 注释。

因此,我编写了一个新的 Runner,将两者的功能结合到 ParameterizedSuite:https://github.com/PeterWippermann/parameterized-suite好消息是,它还允许您使用 @Before@After!

但是,我不确定您的问题是否有所不同:您没有两个参数吗?您说,您已经有一个参数化测试,现在您不想针对数据库配置列表运行该测试。所以这将是你的第二个参数。您想测试这两个参数的所有组合,不是吗?

关于java - 参数化参数化测试或参数化套件,包含之前和之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com