android8自动化测试,Android自动化测试生成单元测试结果报告

/**

* 判断SD卡是否存在

* @return

*/

private boolean isSDCardAvaliable(){

return Environment.getExternalStorageState()

.equals(Environment.MEDIA_MOUNTED);

}

/**

* 获取测试结果报告文件所在的路径

* @param context  被测工程的context

* @return  返回测试结果报告文件所在的路径

*/

private String getTestResultDir(Context context){

String packageName = "/" + "robotium";

String filepath = context.getCacheDir().getPath() + packageName;

if(android.os.Build.VERSION.SDK_INT < 8){

if(isSDCardAvaliable()){

filepath = Environment.getExternalStorageDirectory().getAbsolutePath()+ packageName;

}

}else{

if(isSDCardAvaliable()){

filepath = Environment.getExternalStorageDirectory().getAbsolutePath()+ packageName;

}

}

return filepath;

}

private XmlSerializer newSerializer(Writer writer) {

try {

XmlPullParserFactory pf = XmlPullParserFactory.newInstance();

XmlSerializer serializer = pf.newSerializer();

serializer.setOutput(writer);

return serializer;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

@Override

public void sendStatus(int resultCode, Bundle results) {

super.sendStatus(resultCode, results);

switch (resultCode) {

case REPORT_VALUE_RESULT_ERROR:

case REPORT_VALUE_RESULT_FAILURE:

case REPORT_VALUE_RESULT_OK:

try {

recordTestResult(resultCode, results);

} catch (IOException e) {

throw new RuntimeException(e);

}

break;

case REPORT_VALUE_RESULT_START:

recordTestStart(results);

default:

break;

}

}

void recordTestStart(Bundle results) {

mTestStarted = System.currentTimeMillis();

}

void recordTestResult(int resultCode, Bundle results) throws IOException {

float time = (System.currentTimeMillis() - mTestStarted) / 1000.0f;

String className = results.getString(REPORT_KEY_NAME_CLASS);

String testMethod = results.getString(REPORT_KEY_NAME_TEST);

String stack = results.getString(REPORT_KEY_STACK);

int current = results.getInt(REPORT_KEY_NUM_CURRENT);

int total = results.getInt(REPORT_KEY_NUM_TOTAL);

mTestSuiteSerializer.startTag(null, "testcase");

mTestSuiteSerializer.attribute(null, "classname", className);

mTestSuiteSerializer.attribute(null, "name", testMethod);

if (resultCode != REPORT_VALUE_RESULT_OK) {

mTestSuiteSerializer.startTag(null, "failure");

if (stack != null) {

String reason = stack.substring(0, stack.indexOf('\n'));

String message = "";

int index = reason.indexOf(':');

if (index > -1) {

message = reason.substring(index+1);

reason = reason.substring(0, index);

}

mTestSuiteSerializer.attribute(null, "message", message);

mTestSuiteSerializer.attribute(null, "type", reason);

mTestSuiteSerializer.text(stack);

}

mTestSuiteSerializer.endTag(null, "failure");

} else {

mTestSuiteSerializer.attribute(null, "time", String.format("%.3f", time));

}

mTestSuiteSerializer.endTag(null, "testcase");

if (current == total) {

mTestSuiteSerializer.startTag(null, "system-out");

mTestSuiteSerializer.endTag(null, "system-out");

mTestSuiteSerializer.startTag(null, "system-err");

mTestSuiteSerializer.endTag(null, "system-err");

mTestSuiteSerializer.endTag(null, "testsuite");

mTestSuiteSerializer.flush();

}

}

@Override

public void finish(int resultCode, Bundle results) {

endTestSuites();

super.finish(resultCode, results);

}

void endTestSuites() {

try {

mTestSuiteSerializer.endTag(null, "testsuites");

mTestSuiteSerializer.endDocument();

mTestSuiteSerializer.flush();

mWriter.flush();

mWriter.close();

} catch (IOException e) {

throw new RuntimeException(e);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值