将元数据添加到testdroid的junit xml

时间:2017-09-29 20:48:54

标签: android testdroid

使用TestDroid运行Android Instrumentation测试时,它会输出JUnit XML。如,

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<testsuites>
  <testsuite errors="0" failures="1" hostname="Acer Iconia Tab A1-810 - YSF6Y9HE6SQCOJPV" name="ExampleInstrumentedTest" package="com.myco.androidtest" tests="2" time="0.0000" timestamp="Fri Sep 29 21:29:49 CEST 2017">
    <testcase classname="com.myco.androidtest.ExampleInstrumentedTest" name="someTest" time="0.0000"/>
    <testcase classname="com.myco.androidtest.ExampleInstrumentedTest" name="someOtherTest" time="0.0000">
      <failure message="" type="">java.lang.AssertionError&#13;
        at org.junit.Assert.fail(Assert.java:86)&#13;
        ...
      </failure>
    </testcase>
  </testsuite>
  <properties>
    ...
    <property name="ro.product.manufacturer" value="Acer"/>
    <property name="ro.serialno" value="32206769320"/>
    <property name="ro.product.name" value="a1-810_ww_gen1"/>
    <property name="ro.build.version.release" value="4.2.2"/>
    <property name="ro.build.version.sdk" value="17"/>
    <property name="ro.build.fingerprint" value="acer/a1-810_ww_gen1/mango:4.2.2/JDQ39/1381313631:user/release-keys"/>
    <property name="ro.product.cpu.abi" value="armeabi-v7a"/>
    <property name="ro.product.model" value="A1-810"/>
  </properties>
</testsuites>

除了有关测试的元数据之外,似乎他们正在将Java系统属性转储到xml中,这非常有用。

我想在JUnit XML中添加元数据/属性。关于如何做到的任何想法?

1 个答案:

答案 0 :(得分:0)

它是基于ddmlib功能完成的。 一旦测试完成,您应该使用com.android.ddmlib.testrunner.RemoteAndroidTestRunner传递正确的com.android.ddmlib.IDevicecom.android.ddmlib.testrunner.ITestRunListener的实现(应该负责收集测试信息并生成junit xml)到run方法您可以生成xml并转储到文件,最后添加com.android.ddmlib.IDevice#getProperties