浏览 1646 次
锁定老帖子 主题:一键跑完工程中所有单元测试的方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-28
研究了一下午,费话少说,直接上代码,依赖commons-io,有兴趣的朋友自己深究:
package com.carver; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.IOFileFilter; import org.apache.commons.io.filefilter.TrueFileFilter; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.model.InitializationError; @RunWith(TestAll.class) public class TestAll extends Suite { public TestAll(Class<?> setupClass) throws InitializationError { super(setupClass, findAllTestClasses()); } private static Class<?>[] findAllTestClasses() { File srcDir = new File(AtsTestAll.class.getResource("/").getFile()); Collection<File> files = FileUtils.listFiles(srcDir, new IOFileFilter() { public boolean accept(File file) { return file.getName().endsWith("Test.class"); } public boolean accept(File dir, String name) { return true; } }, TrueFileFilter.INSTANCE); List<Class<?>> classList = new ArrayList<Class<?>>(); for (File file : files) { String className = file.getAbsolutePath().replace(srcDir.getAbsolutePath() + File.separator, ""); className = className.replace(File.separator, "."); className = className.replace(".class", ""); try { classList.add(Class.forName(className)); } catch (Exception e) { e.printStackTrace(); } } return classList.toArray(new Class<?>[0]); } }
打开TestAll类,按Ctrl+F11,所有单元测试(不管是采用Annotation还是继承TestCase)一起来。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-05-28
。。不太了解诶。。我都是在test文件夹上直接run的。
|
|
返回顶楼 | |