如何在Windows上使用命令行启动CTS?

3

对于Android 2.3,我使用以下命令行进入CTS控制台:

java -Xmx512M -cp %CTS_ROOT%\tools\ddmlib-prebuilt.jar;%CTS_ROOT%\tools\cts.jar;%CTS_ROOT%\tools\junit.jar; %CTS_ROOT%\tools\hosttestlib.jar com.android.cts.TestHost %CTS_ROOT%\repository/host_config.xml

是否有一种类似的方法可以无需cygwin之类的东西来运行Android 4.0 CTS?

4个回答

8

在Windows上运行Android 4.0+ CTS

以下是我的解决方案:(我假设所有路径(adb)/classpath(Java)都设置正确)

1.下载并解压CTS文件(例如,我将所有解压的文件放入D:\ cts中,文件夹看起来像D:\ cts \ android-cts)

http://source.android.com/compatibility/downloads.html

2.创建cts_windows.bat文件并将其放入tools文件夹中。 (在我的情况下,即D:\ cts \ android-cts \ tools \ cts_windows.bat)

编辑cts_windows.bat文件,使用以下代码(请记得使用您自己的-DCTS_ROOT路径):

java -cp ddmlib-prebuilt.jar;tradefed-prebuilt.jar;hosttestlib.jar;cts-tradefed.jar -DCTS_ROOT=D:\cts com.android.cts.tradefed.command.CtsConsole
  1. 执行cts_windows.bat文件,它会进入一个名为"cts-tf>"的shell环境,然后你可以使用" run cts --plan CTS "命令来运行cts。

更多说明,请参阅http://source.android.com/compatibility/android-cts-manual-r4.pdf手册。


同样的方法在Android 8上不起作用。[适用于Android版本6] 错误: 找不到或加载主类com.android.cts.tradefed.command.CtsConsole 原因:java.lang. ClassNotFoundException : com.android.cts.tradefed.command.CtsConsole。请帮忙解决。 - Sanyal

1

对于4.1 CTS套件,我执行了不同的任务来解决我的问题。

对于运行Cygwin的Windows用户:

  1. 修改第81行上的JAR_PATH设置,将冒号替换为分号。
    还要在赋值周围添加引号。它应该看起来像下面的命令:

    错误: JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}
    正确: JAR_PATH="${JAR_PATH};${JAR_DIR}/${JAR}"

  2. 确保在相同的目录下运行cts-tradefed脚本!
    第73行假定如果CTS_ROOT未定义,则用户位于与cts-tradefed相同的目录中。
    但是说明告诉人们从cts-android所在的目录运行脚本。


    正确: ./cts-tradefed
    错误: ./android-cts/tools/tradefed


0

我能在Windows上运行CTS,通过传递正确的CTS根目录解决了上述异常。

默认情况下,CTS将android-cts作为根目录引用,因此我们应该将文件夹保持为“D:\ Android \ android-cts”

传递-DCTS_ROOT = D:\ Android

因此,“Caused by:java.io.FileNotFoundException:CTS安装文件夹D:\ cts \ android-cts”将得到解决。

java -cp ddmlib-prebuilt.jar;tradefed-prebuilt.jar;hosttestlib.jar;cts-tradefed.jar -DCTS_ROOT=D:\Android com.android.cts.tradefed.command.CtsConsole

使用上述脚本,我能够在我的用户设备上运行CTS。

谢谢, Ganesh Kumar Ramamoorthy


0

我不建议在Windows上运行CTS。

直到Android 4+,这里建议的解决方法(使用批处理文件)确实有效,但当我尝试时,有许多失败和许多测试根本没有执行。此外,根据Google CTS文档,它应该仅在Linux或MAC上运行,因此您如何保证故障是由于测试设备(真正的故障)还是因为您在不支持的环境中运行它?

尽管如此,从Android 6+开始,在Windows中使用批处理文件对我来说无效,CTS将寻找仅存在于Linux机器中的bash,并在启动之前退出执行。

在Linux上运行时,它运行得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接