在 Android LunarLander 示例项目中,单元测试直接包含在项目中,位于名为“tests”的(非源)文件夹中。这符合推荐此布局而不是在单独项目中创建测试的 SDK 测试指南。但是,我不知道如何实际运行这些测试。
我无法创建 Android Junit 测试运行配置:
- 如果我尝试“在项目或包中运行所有测试”,它会提示 list 文件不包含检测信息 - 显然它使用的是顶级 list 文件而不是测试 list 文件。
- 如果我尝试“运行单个测试”,我找不到任何测试,因为测试不是源文件夹,如果我将它设置为源文件夹,则会弹出错误,因为它假设测试类应该在以“tests.src”开头的包中。
在我看来,这个示例已经损坏了......我希望我错了,因为我宁愿将测试嵌入到我的项目中并能够轻松运行它们(而不是创建一个链接的单独测试项目为被测应用项目)。有人知道我如何运行这些测试吗?谢谢...
最佳答案
Google 推荐单一的一体化目录,因为它使您的文件在许多情况下都易于维护,例如在处理源代码控制时。
测试项目在文件系统中的位置并不重要,但是,您必须将其导入 Eclipse 的工作区,就像您对 LunarLander 项目所做的一样:
如果一切顺利,您的 Package Explorer 应如下所示:
在我的 Android 4.2 示例中,事情进展不顺利,似乎 LunarLander 测试项目的源代码不是最新的:
- 它没有随 project.properties 文件一起提供。
- 它使用与 LunarLander 项目相同的包名称,导致 Eclipse 在从引用的 LunarLander 项目导入包/类时被欺骗。
- 它不会自动将 LunarLander 项目添加到测试项目的类路径,因此从引用的 LunarLander 项目导入的包/类是不可见的。
解决所有问题后,您应该能够从测试项目运行/调试 Android JUnit 测试。
关于Android 单元测试 - 如何在与应用程序相同的项目中运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806722/