首页 文章

Codename One - 使用build.unitTest = 1时需要的tests.dat文件

提问于
浏览
1

我创建了一个扩展AbstractTest类的测试 . 测试在Netbeans中正常工作:我右键单击项目名称,然后在"Test"上 . 当然,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文件 . 确切的错误是: "Test data not found in the file, make sure the ant task was executed in full" (它由DeviceRunner class在第57行产生) . 我在/ src中添加了一个空的tests.dat,但它没用,因为没有运行测试 .

我不知道自己要做什么 .

我需要一步一步的说明来测试真实设备上的应用程序,就像我在Codename One Simulator中一样 . 谢谢 .

1 回答

  • 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 文件,该文件应该打包到构建中 .

相关问题