avoid nesting of testsuites (hopefully it will help TeamCity report tests correctly)
This commit is contained in:
@@ -16,7 +16,7 @@ import java.util.List;
|
|||||||
* @author abreslav
|
* @author abreslav
|
||||||
*/
|
*/
|
||||||
public abstract class JetTestCaseBuilder {
|
public abstract class JetTestCaseBuilder {
|
||||||
private static FilenameFilter emptyFilter = new FilenameFilter() {
|
public static FilenameFilter emptyFilter = new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File file, String name) {
|
public boolean accept(File file, String name) {
|
||||||
return true;
|
return true;
|
||||||
@@ -43,6 +43,11 @@ public abstract class JetTestCaseBuilder {
|
|||||||
@NotNull
|
@NotNull
|
||||||
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) {
|
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) {
|
||||||
TestSuite suite = new TestSuite(dataPath);
|
TestSuite suite = new TestSuite(dataPath);
|
||||||
|
appendTestsInDirectory(baseDataDir, dataPath, recursive, filter, factory, suite);
|
||||||
|
return suite;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, final FilenameFilter filter, NamedTestFactory factory, TestSuite suite) {
|
||||||
final String extensionJet = ".jet";
|
final String extensionJet = ".jet";
|
||||||
final String extensionKt = ".kt";
|
final String extensionKt = ".kt";
|
||||||
final FilenameFilter extensionFilter = new FilenameFilter() {
|
final FilenameFilter extensionFilter = new FilenameFilter() {
|
||||||
@@ -76,7 +81,7 @@ public abstract class JetTestCaseBuilder {
|
|||||||
List<File> subdirs = Arrays.asList(files);
|
List<File> subdirs = Arrays.asList(files);
|
||||||
Collections.sort(subdirs);
|
Collections.sort(subdirs);
|
||||||
for (File subdir : subdirs) {
|
for (File subdir : subdirs) {
|
||||||
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory));
|
appendTestsInDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory, suite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
||||||
@@ -87,6 +92,5 @@ public abstract class JetTestCaseBuilder {
|
|||||||
String extension = fileName.endsWith(extensionJet) ? extensionJet : extensionKt;
|
String extension = fileName.endsWith(extensionJet) ? extensionJet : extensionKt;
|
||||||
suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length())));
|
suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length())));
|
||||||
}
|
}
|
||||||
return suite;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,31 +55,27 @@ public class JetPsiCheckerTest extends LightDaemonAnalyzerTestCase {
|
|||||||
|
|
||||||
public static Test suite() {
|
public static Test suite() {
|
||||||
TestSuite suite = new TestSuite();
|
TestSuite suite = new TestSuite();
|
||||||
final TestSuite checkerSuite = JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
||||||
return new JetPsiCheckerTest(dataPath, name);
|
return new JetPsiCheckerTest(dataPath, name);
|
||||||
}
|
}
|
||||||
});
|
}, suite);
|
||||||
if (checkerSuite.countTestCases() == 0) {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
throw new RuntimeException("didn't find any testcases under /checker/");
|
|
||||||
}
|
|
||||||
suite.addTest(checkerSuite);
|
|
||||||
suite.addTest(JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, new JetTestCaseBuilder.NamedTestFactory() {
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
||||||
return new JetPsiCheckerTest(dataPath, name);
|
return new JetPsiCheckerTest(dataPath, name);
|
||||||
}
|
}
|
||||||
}));
|
}, suite);
|
||||||
suite.addTest(JetTestCaseBuilder.suiteForDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name) {
|
||||||
return new JetPsiCheckerTest(dataPath, name).setCheckInfos(true);
|
return new JetPsiCheckerTest(dataPath, name).setCheckInfos(true);
|
||||||
}
|
}
|
||||||
}));
|
}, suite);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user