gpt4 book ai didi

spring - 如何使用参数化的 spring Junit 测试创建 TestSuite

转载 作者:行者123 更新时间:2023-11-28 20:46:35 24 4
gpt4 key购买 nike

我正在尝试将我的测试捆绑在一个 TestSuite 中,它将从一个目录中获取文件并在加载 spring 上下文后运行每个文件。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/META-INF/spring/context-test.xml"})
public class MyTestCase extends TestCase{

private String fileName;

public MyTestCase(String fileName){
this.fileName = fileName;
}

@Resource private Processor processor;

@Before
public void setup(){
...
}

@Test
public void test(){
Read file and run test..
...
}

}

如果我这样做,它不会识别 spring 注释

public class MyTestSuite extends TestCase{

public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTest(new MyTestCase("file1"));
suite.addTest(new MyTestCase("file2"));
return suite;
}
}

我查了一下发现:Spring 3+ How to create a TestSuite when JUnit is not recognizing it ,这表明我应该使用 JUnit4TestAdapter。 JUnitTestAdapter 的问题是它不允许我传递参数,也不会接受 MyTestSuite.suite()。我只能做类似的事情:

public class MyTestSuite{

public static Test suite(){

return new JUnit4TestAdapter(MyTestCase.class);
}
}

非常感谢您的回复。

谢谢

最佳答案

我不得不使用已弃用的 AbstractSingleSpringContextTests 来实现这一点。 AbstractSingleSpringContextTests 是在 TestContext 框架不可用的时代。

public class MyTestCase extends AbstractSingleSpringContextTests {

private String fileName;

public MyTestCase(String fileName){
this.fileName = fileName;
}

@Resource private Processor processor;

@Override
protected void onSetUp(){

initialization code...

}

@Override
protected String getConfigPath(){
return "config/File/Path";
}

@Test
public void test(){
Read file and run test..
...
}

}


public class MyTestSuite extends TestCase{

public static Test suite(){
TestSuite suite = new TestSuite();
suite.addTest(new MyTestCase("file1"));
suite.addTest(new MyTestCase("file2"));
return suite;
}
}

这不是最好的解决方案,但它确实有效。如果您有更好的想法,请发表。

关于spring - 如何使用参数化的 spring Junit 测试创建 TestSuite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355261/

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