You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在命令行使用Android gradlew时显示完整多行断言信息?

问题复现
  • 通过Android Studio创建了一个包含空Activity的Android项目,在ExampleInstrumentedTest类的useAppContext()测试方法中添加如下输出多行断言信息的代码:
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
        assertEquals("com.example.myapplication", appContext.getPackageName());
        
        Assert.fail("1. Test failed\n2. Test failed\n3. Test failed\n");
    }
}
  • 在Android Studio中直接运行测试,可以正常展示完整的多行断言错误信息:
java.lang.AssertionError: 1. Test failed
2. Test failed
3. Test failed
  • 在命令行执行./gradlew connectedDebugAndroidTest命令运行测试时,仅能输出前两行断言内容:
$ ./gradlew connectedDebugAndroidTest
com.example.myapplication.ExampleInstrumentedTest > useAppContext[SM-G950U - 9] FAILED
        java.lang.AssertionError: 1. Test failed
        2. Test failed

> Task :app:connectedDebugAndroidTest FAILED
  • 运行环境及依赖版本如下:
MacOS 11.3.1
Android Studio 4.2.1
classpath "com.android.tools.build:gradle:4.2.1"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
解决方案

该问题是Android Gradle插件默认对测试异常输出做了截断处理,默认最多显示2行异常消息,修改配置即可完整输出:

  1. 打开项目下app模块的build.gradle文件,在android配置块中添加如下配置:
android {
    // 保留你原有其他配置不变
    testOptions {
        connectedCheck {
            // 设置异常输出格式为完整模式,不截断内容
            exceptionFormat = 'full'
        }
    }
}
  1. 配置完成后重新运行./gradlew connectedDebugAndroidTest命令,即可看到完整的多行断言信息。

如果不想修改配置文件,也可以在运行命令时临时指定参数,效果相同:

./gradlew connectedDebugAndroidTest -Pandroid.testOptions.connectedCheck.exceptionFormat=FULL

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 12:06:01