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

标签 android unit-testing

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

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

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

在我看来,这个示例已经损坏了......我希望我错了,因为我宁愿将测试嵌入到我的项目中并能够轻松运行它们(而不是创建一个链接的单独测试项目为被测应用项目)。有人知道我如何运行这些测试吗?谢谢...

最佳答案

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 项目导入的包/类是不可见的。

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

关于Android 单元测试 - 如何在与应用程序相同的项目中运行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806722/

相关文章:

python - 每当单元测试失败时执行操作

java - 如何限制Java ServiceLoader仅加载测试包中定义的服务提供者

android - 在样式中使用颜色引用

android - 我可以在不膨胀/重新膨胀布局的情况下向 ScrollView 添加 View 吗?

c# - 使用 Moq 部分模拟类内部方法

unit-testing - 单元测试和存储过程

python - 如何在测试注释中使用带有 patch.object() 的 mock_open()

androidannotations @AfterViews 没有调用并且 editText 为空

android - 在房间数据库中保存数据的存储限制是多少?

android - 如何在android中滚动时始终保持 ListView 的中心项目为一种颜色