当前位置: 首页 > 知识库问答 >
问题:

使用Gradle在Android Studio中运行普通Java项目的单元测试

贝嘉泽
2023-03-14

在一个多模块的Android项目中,我有一个其他Android库和应用程序依赖的普通Java项目。我最近将整个项目迁移到使用Gradle构建。

我在运行纯Java项目的junit测试时遇到了一个问题,仅在Android Studio中。在命令行上,测试运行正常:

./gradlew -p the-java-proj test

这将按预期执行单元测试,如果我插入一个Assert.fail()作为健全性检查,我将正确地获得预期的失败。

但是,我无法在Android Studio中运行单元测试。我创建了一个运行配置来运行包中的所有测试,并且在运行时遇到此错误:

最后的“运行时范围”是可疑的,但我不知道该怎么做。以下是构建。项目的梯度

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-all:1.9.5'
}

这尤其令人费解,因为在迁移到Gradle之前,我可以在Android Studio中很好地运行单元测试。只是现在我有这样的问题。我也没有友好的上下文菜单选项来运行单个单元测试。而且,据我所知,在当前文件中运行单元测试的键盘快捷方式以前是有效的,现在它只是弹出运行配置选择器,没有添加新选项。

共有2个答案

微生高谊
2023-03-14

从这篇文章中:https://coderwall.com/p/ybds4w(感谢@GalBenHaim)

然而,如果您需要专门使用JUnit进行POJO测试,或者使用流行的框架,那么Android Studio中还没有集成的支持。

换句话说,在我写这篇文章的时候,Android Studio无法做到这一点,我无法在POJO上运行JUnit测试。在命令行上,它可以正常工作(/gradlew test)。

王经赋
2023-03-14

如果将java项目附加到android项目,当从主项目运行测试时,它不会在java库项目中运行测试。它只需要创建库项目的jar。所以我们需要明确地告诉运行测试任务。

apply plugin: 'java'

repositories {
mavenCentral()
}

dependencies {
   testCompile 'junit:junit:4.11'
   testCompile 'org.mockito:mockito-all:1.9.5'
}

jar.dependsOn test
 类似资料:
  • 尝试设置远程代码欺骗单元测试在PhpStorm中的Yii2项目。 使用SSH,我可以登录到服务器,转到我的Yii2项目的根目录并运行:

  • 我错过了什么? 编辑: 看来Gradle也不接我的测试。当我转到时,它指示0 test。 在IntelliJ中,我打开Gradle窗口,点击“刷新所有Gradle项目”按钮,刷新库。 然后在我的测试类中,我在类声明的顶部添加了。 当我执行时,结果可以在下面找到:

  • 我目前正在开发一个SpringBootJAR库,用于可重用的组件,比如 ldap 电子邮件 与apache kafka消息 其余api用法 我们公司的每个Java用户/程序员都应该能够把这个罐子放在一个项目中(通过maven或其他方式),并使用可重用的组件,而不是一遍又一遍地编码所有的东西。 在REST之上为该问题构建微服务不是我们的选择。 我的问题是: 我可以在任何普通Java项目中重用这个Sp

  • 我试图让测试(junit和robolectric)在Android项目中工作,但完全卡住了。我的主要问题是,我用gradle发现的所有测试都以某种方式拉入了java插件,然后我得到了这个错误: 我目前看到的唯一出路是分裂成测试和应用程序项目--但我想避免这种情况。任何例子/提示将非常感谢! 在官方文档中没有提到单元测试--只提到仪器测试--但我希望单元测试能快速得到结果。

  • 问题内容: 我正在尝试为我的项目编写一个单元测试,但是它不允许我使用配置管理器。现在我的项目像 ASP.Net应用程序(所有aspx页) ProjectCore(所有C#文件-模型) ProjectTest(所有测试) 在我的ProjectCore中,我可以从System.Configuration访问ConfigurationManager对象,并将信息传递到项目中。但是,当我运行涉及Confi