Android单元测试 - 如何在与应用程序相同的项目中运行测试?

时间:2013-02-11 06:01:43

标签: android unit-testing

在Android LunarLander示例项目中,单元测试直接包含在项目中,名为“tests”的(非源)文件夹中。这与SDK测试指南一致,该指南推荐此布局,而不是在单独的项目中创建测试。但是,我不知道如何实际运行这些测试。

我无法创建Android Junit测试运行配置:

  • 如果我尝试'在项目或包中运行所有测试',它会抱怨清单文件不包含检测信息 - 显然它使用顶级清单文件而不是测试清单文件。
  • 如果我尝试'运行单个测试',我找不到任何因为测试不是源文件夹,如果我将其设置为源文件夹,则弹出错误,因为它假定测试类应该在一个以'tests.src'开头的包中。

我开始觉得这个样本已经破了......我希望我错了,因为我宁愿将测试嵌入到我的项目中并且能够轻松地运行它们(而不是创建一个单独的测试项目链接投射应用程序的项目)。有谁知道我怎么能运行这些测试?感谢...

1 个答案:

答案 0 :(得分:1)

Google建议使用单一的多合一目录,因为它可以在很多情况下轻松维护您的文件,例如在处理源代码管理时。

测试项目在文件系统中的位置并不重要,但是,您必须将其导入Eclipse的工作区,与您为LunarLander项目所做的相同:

enter image description here

如果一切顺利,您的Package Explorer应如下所示:

enter image description here

在我的Android 4.2示例中,事情进展不顺利,似乎LunarLander测试项目的源代码不是最新的:

  1. 它没有project.properties文件。
  2. 它使用与LunarLander项目相同的包名,导致Eclipse从引用的LunarLander项目导入包/类时被愚弄。
  3. 它不会自动将LunarLander项目添加到测试项目的类路径中,导致从引用的LunarLander项目导入的包/类是不可见的。
  4. 解决所有问题后,您应该能够从测试项目中运行/调试Android JUnit Test。