Java 具有所需预处理的许多文件上的断言

Java 具有所需预处理的许多文件上的断言,java,spring,testing,testng,integration-testing,Java,Spring,Testing,Testng,Integration Testing,我有一大组文件(>1000),我希望在这些文件上运行同一组断言。断言是按逻辑组组织的,因此我将它们分解为单个类中的30多个@Test方法 为了运行我想要的断言,我需要在每个文件之前运行一些昂贵的预处理,我的断言将根据预处理的结果运行 由于每个@Test方法都需要预处理,因此我希望为每个文件运行一次 我使用@DataProvider的方式如下: @ContextConfiguration({ "classpath:/META-INF/spring/ev-xml-test-context.xml"

我有一大组文件(>1000),我希望在这些文件上运行同一组断言。断言是按逻辑组组织的,因此我将它们分解为单个类中的30多个
@Test
方法

为了运行我想要的断言,我需要在每个文件之前运行一些昂贵的预处理,我的断言将根据预处理的结果运行

由于每个
@Test
方法都需要预处理,因此我希望为每个文件运行一次

我使用
@DataProvider
的方式如下:

@ContextConfiguration({ "classpath:/META-INF/spring/ev-xml-test-context.xml" })
public class FantasticTest extends AbstractTestNGSpringContextTests {

    private String[][] FILES = new String[][] {
            { "file1.xml" },
            { "file2.xml" },
            { "..." },
            { "file1000.xml" }
    };

    private Map<String, Object> preProcessingResults = new HashMap<>();

    @BeforeClass
    public void setup() throws Exception {
        for(int i=0; i<FILES.length; i++) {
            preProcessingResults.put(FILES[i][0], expensivePreProcessing(FILES[i][0]));
        }
    }

    private Object expensivePreProcessing(String file) {
        // do something expensive
        return new ExpensiveObject(file);
    }

    @DataProvider(name = "myDataProvider")
    public String[][] dataProvider() {
        return FILES;
    }

    @Test(dataProvider = "myDataProvider")
    public void test1(String filename) {
        Object preProcessingResultsForFile = preProcessingResults.get(filename);
        // assertions
    }

    @Test(dataProvider = "myDataProvider")
    public void test2(String filename) {
        Object preProcessingResultsForFile = preProcessingResults.get(filename);
        // assertions
    }
    // ...
    @Test(dataProvider = "myDataProvider")
    public void test30(String filename) {
        Object preProcessingResultsForFile = preProcessingResults.get(filename);
        // assertions
    }
}
@ContextConfiguration({“classpath:/META-INF/spring/ev xml test context.xml})
公共类FantasticTest扩展了AbstractTestNGSpringContextTests{
私有字符串[][]文件=新字符串[][]{
{“file1.xml”},
{“file2.xml”},
{ "..." },
{“file1000.xml”}
};
私有映射预处理入口结果=新HashMap();
@课前
public void setup()引发异常{
对于(int i=0;i