Junit套件类(AllTest)

单元测试套件类

代码:

import java.io.File;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

/**
* 单元测试套件类,获取当前包下的所有单元测试类并运行
*
* @author phrash
*
*/
public class AllTests
{
/** 包名 */
private static String pkgName = AllTests.class.getPackage().getName();

/** 测试套件 */
private static TestSuite suite = new TestSuite();

public static Test suite()
{
// 将包名转化为路径,这里也可以具体指明是某个路径
String rPath = pkgName.replace('.', '/') + "/";

// 遍历文件夹下所有文件,并将java文件转化为Class
refreshFileList(rPath, pkgName);

return suite;
}

/**
* 递归获取目录下的class
*
* @param strPath
* @param newPkgName
*/
public static void refreshFileList(String strPath, String newPkgName)
{
// 获取目录
File dir = new File(strPath);
// 获取目录下所有文件和目录
File[] files = dir.listFiles();

if (files == null)
{
return;
}
for (int i = 0; i < files.length; i++)
{
// 文件名
String fileName = files[i].getName();
// 递归
if (files[i].isDirectory())
{
refreshFileList(files[i].getAbsolutePath(), newPkgName + "."
+ fileName);
}
// 判断是不是java文件
else if (-1 != fileName.lastIndexOf(".java"))
{
// 去掉文件名的文件类型后缀
String clsName = fileName.substring(0, fileName
.lastIndexOf("."));

clsName = newPkgName + "." + clsName;

try
{
// 临时Class
Class tempClass = Class.forName(clsName);
// 如果不是测试类则continue
if (!isTestCase(tempClass))
{
continue;
}
// 将得到的Class放入suite中
suite.addTestSuite(tempClass);
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
}

/**
* 判断是不是测试类
*
* @param tempClass
* @return boolean
*/
private static boolean isTestCase(Class tempClass)
{
// 如果该类的父类是TestCase,则说明是测试类
if ((tempClass.getSuperclass()).equals(TestCase.class))
{
return true;
}
return false;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值