Как отображать многострочные сообщения assert с помощью Android gradlew в командной строке?

#java #android #gradle #junit4 #multiline

Вопрос:

Я создал новый пустой проект для Android с Android Studio. Я добавил дополнительную строку в useAppContext() тест в ExampleInstrumentedTest классе, которая показывает многострочное сообщение об утверждении:

 @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 failedn2. Test failedn3. Test failedn");
    }
}
 

Если я запущу тест в Android Studio, я получу соответствующее сообщение об утверждении:

 java.lang.AssertionError: 1. Test failed
2. Test failed
3. Test failed
 

Но если я запущу его из командной строки, я получу всего две строки сообщения:

 $ ./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'
 

Как я могу показать все строки в командной строке?

Комментарии:

1. ./gradlew connectedDebugAndroidTest --console plain Помогает ли это вообще?

2. Я получил тот же результат с --console plain : 3. Test failed на консоли нет 🙁

3. Я думаю, что это полезно 😉 github.com/getodk/collect/issues/2550

4. Я не вижу, как это может помочь