2013-02-11 59 views
2

在Android LunarLander示例项目中,单元测试包含在项目中,名为'tests'的(非源代码)文件夹中。这与推荐此布局的SDK测试指南相对,而不是在单独的项目中创建测试。但是,我不知道如何才能真正运行这些测试。Android单元测试 - 如何在与应用程序相同的项目中运行测试?

我不能创建一个Android JUnit测试运行配置:

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

在我看来,这个样本已经破裂了......我希望我错了,因为我宁愿将测试嵌入到我的项目中,并且能够轻松地运行它们(而不是创建单独的测试项目链接到测试应用程序项目)。有人知道我可以如何运行这些测试吗?谢谢...

+0

你说的是使用Eclipse,对吧? – yorkw 2013-02-14 09:19:21

回答

1

谷歌推荐一个单一的all-in-one目录,因为它使得你的文件很容易在许多情况下维护,例如在处理源代码控制时。

不要紧,其中测试项目位于INT文件系统,但是,你必须将其导入到Eclipse的工作空间,一样的,你做了什么的LunarLander项目:

enter image description here

如果一切顺利的话,你的包浏览器应该是这个样子:

enter image description here

在我的Android 4.2的样品,事情进展不顺利,好像是个LunarLander测试项目的源代码不是最新的:

  1. 它没有带有project.properties文件。
  2. 它使用与LunarLander项目相同的软件包名称,导致Eclipse在从引用的LunarLander项目中导入软件包/类时被愚弄。
  3. 它不会自动将LunarLander项目添加到测试项目的类路径中,从而引用的LunarLander项目导致的导入的包/类不可见。

解决所有问题后,您应该能够从测试项目运行/调试Android JUnit Test。

+0

我知道我可以为我的测试创建第二个项目,并且我很容易就能做到这一点。但那不是我想要做的;我的问题是关于在同一个项目中进行测试,这是我(和大多数人?)如何构建vanilla Java项目的方式。在你的照片中注意,LunarLander项目有一个包含与其他测试项目相同的文件的“测试”文件夹。你如何在LunarLander的'测试'中运行测试? – noobler 2013-02-16 20:19:47

+0

google的意思是([see here](http://developer.android.com/tools/testing/testing_android.html#TestProjects))关于“在同一个项目中进行测试”纯属于文件系统级别,即你应该如何组织你的项目的文件夹/文件在你的硬盘上。当进入Eclipse时,测试项目必须在逻辑上导入并在Eclipse的Package Explorer中形成为一个单独的项目。子文件夹测试具有自己的项目描述结构,并且在导入LunarLander项目时仅显示为具有原始文件的普通文件夹。这就是ADT的设计和应用方式。 – yorkw 2013-02-16 23:15:20

+0

当玩样品时,我通常使用的是文件 - >导入... - > Android - >现有的Android代码导入到工作区中 - 导入项目(更好地处理样本副本,因为这会更改原始样本文件在sdk/samples文件夹下)。请注意,这将分析和检测所有子项目(如果它们格式正确)并一次性导入到Eclipse中。但是,它们仍然显示为Package Explorer中的两个项目。请记住,Package Explorer只是您在文件系统上投影的逻辑视图。您必须从测试项目运行/调试您的测试。 – yorkw 2013-02-16 23:37:13

相关问题