原文来自:http://blog.csdn.net/hunterno4/article/details/14485663
并补充对改代码的优化
代码部分
public class SampleTestResult extends InstrumentationTestRunner {
private static final String JUNIT_XML_FILE = "TEST-all.xml";
private XmlSerializer mTestSuiteSerializer;
private Writer mWriter;
private long mTestStarted;
@Override
public TestSuite getAllTests() {
return new TestSuite();
}
/***
* 开始测试时调用此方法
*/
@Override
public void onStart() {
try {
File fileRobo = new File(getTestResultDir(getTargetContext()));
if (!fileRobo.exists()) {
fileRobo.mkdir();
}
if (isSDCardAvaliable()) {
File resultFile = new File(
getTestResultDir(getTargetContext()), JUNIT_XML_FILE);
startJUnitOutput(new FileWriter(resultFile));
} else {
startJUnitOutput(new FileWriter(new File(getTargetContext()
.getFilesDir(), JUNIT_XML_FILE)));
}
} catch (IOException e) {
throw new RuntimeException(e);
}
super.onStart();
}
/**
* 创建写文件流内容
*
* @param writer
*/
void startJUnitOutput(Writer writer) {
try {
mWriter = writer;
mTestSuiteSerializer = newSerializer(mWriter);
mTestSuiteSerializer.startDocument(null, null);
mTestSuiteSerializer.startTag(null, "testsuites");
mTestSuiteSerializer.startTag(null, "testsuite");
} catch (Exception e) {
throw new RuntimeExce