我创建了一个扩展AbstractTest类的测试。测试在Netbeans中正常工作:我右键单击项目名称,然后点击"测试"。当然,Netbeans在Codename One Simulator中进行了测试。我想在几个真实的设备上重复测试,正如我在" Codename One - Test Recorder: execute a test on a real device"
中所说的那样所以我添加了build.unitTest=1
构建提示,并检查了我的build.xml包含:
<target name="test-for-ios-device" depends="clean,copy-ios-override,copy-libs,compile-test,clean-override">
<codeNameOne
jarFile="${dist.jar}"
displayName="${codename1.displayName}"
packageName = "${codename1.packageName}"
mainClassName = "${codename1.mainName}"
version="${codename1.version}"
icon="${codename1.icon}"
vendor="${codename1.vendor}"
subtitle="${codename1.secondaryTitle}"
buildArgs="build.unitTest=1"
targetType="iphone"
certificate="${codename1.ios.debug.certificate}"
certPassword="${codename1.ios.debug.certificatePassword}"
provisioningProfile="${codename1.ios.debug.provision}"
appid="${codename1.ios.appid}"
automated="${automated}"
/>
</target>
<target name="test-for-android-device" depends="clean,copy-android-override,copy-libs,compile-test,clean-override">
<codeNameOne
jarFile="${dist.jar}"
displayName="${codename1.displayName}"
packageName = "${codename1.packageName}"
mainClassName = "${codename1.mainName}"
version="${codename1.version}"
icon="${codename1.icon}"
vendor="${codename1.vendor}"
subtitle="${codename1.secondaryTitle}"
buildArgs="build.unitTest=1"
targetType="android"
keystoreAlias="${codename1.android.keystoreAlias}"
keystore="${codename1.android.keystore}"
certPassword="${codename1.android.keystorePassword}"
automated="${automated}"
/>
</target>
之后,我发送了一个iOS版本:它没有编译。所以我尝试发送Android版本。在真实设备上生成的apk会产生错误,因为缺少/tests.dat文件。确切的错误是:&#34;测试数据在文件中找不到,确保ant任务已完全执行&#34; (由DeviceRunner class生成第57行)。我在/ src中添加了一个空的tests.dat,但它没用,因为没有运行测试。
我不知道自己该做什么。
我需要逐步说明在真实设备上测试应用程序,就像我在Codename One Simulator中一样。感谢。
答案 0 :(得分:1)
在作为基本目标的compile-test
目标中,我们有这一行:
<prepareTests classesDir="${build.classes.dir}" testClassesDir="${build.test.classes.dir}" seJar="JavaSE.jar" metaDataFile="${build.test.classes.dir}/tests.dat" />
这应该为测试目录生成一个有效的tests.dat
文件,该文件应打包到构建中。