Тесты Android — как добавить журналы эспрессо

Я использую

androidTestCompile 'com.android.support.test:runner:0.3'
    androidTestCompile 'com.android.support.test:rules:0.3'
    androidTestCompile 'com.android.support:support-annotations:23.0.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'
    androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2') {
        // this library uses the newest app compat v22 but the espresso contrib still v21.
        // you have to specifically exclude the older versions of the contrib library or
        // there will be some conflicts
        exclude group: 'com.android.support', module: 'appcompat'
        exclude group: 'com.android.support', module: 'support-v4'
        exclude module: 'recyclerview-v7'
    }
    androidTestCompile 'junit:junit:4.12'

для тестов, и мне было интересно, есть ли способ сказать эспрессо, чтобы распечатать журнал с начатым тестом и завершенным тестом, чтобы было легко увидеть логарифм, если что-то произойдет.

Это было бы здорово смешать с papertrail, чтобы проверить, почему тесты терпят неудачу и где с частными серверами интеграции.


person Daniel Gomez Rico    schedule 10.09.2015    source источник
comment
Он уже печатает журналы... TestRunner I started: successCloseView   -  person Daniel Gomez Rico    schedule 10.09.2015
comment
Серьезно, нет ли способа добавить записи журнала/консоли отладки в тест Espresso? Когда существующего вывода недостаточно, это естественный следующий шаг: добавить регистрацию moar.   -  person ChrisPrime    schedule 22.09.2015


Ответы (3)


Вы можете собирать журналы Android, запустив тесты на своем сервере CI через Spoon. Посмотрите примеры с практическими рекомендациями на их веб-сайте и ознакомьтесь со ссылками ниже, чтобы увидеть примеры отчетов, а затем журналы для одного из тестов. Журналы каждого тестового запуска фиксируются и сохраняются в отчете.

Вывод отчета: http://square.github.io/spoon/sample/index.html

Примеры журналов: http://square.github.io/spoon/sample/logs/0403681E12013007/com.example.spoon.ordering.tests.OrderActivityTest/testMakeASandwich_ItTastesGood.html

person Sam Edwards    schedule 18.06.2016

В следующий раз, пожалуйста, покажите нам, какие шаги вы предприняли, чтобы заставить это работать самостоятельно.

Вы можете просто посмотреть в logcat после запуска тестов. Некоторые из вспомогательных классов уже регистрируются в logcat. Например, посмотрите на android.support.test.internal.runner.lifecycle.ActivityLifecycleMonitorImpl. Он регистрирует состояния жизненного цикла активности:

D/LifecycleMonitor: Lifecycle status change:com.example.android.MyActivity@f3c7955 in: STOPPED

Любые операторы журнала внутри ваших тестируемых классов также будут отображаться. Наконец, будут отображены все операторы журнала внутри ваших тестовых классов.

@RunWith(AndroidJUnit4.class)
public class SomeTest {

    @Before
    public void setUp() throws Exception {
        Log.d(TAG, "setup");
    }

    ...
}

Я могу видеть журналы как в Android Studio, так и в командной строке.

Я завершу, сказав, что я также могу заставить работать ведение журнала, если вместо этого использую Timber.

person tir38    schedule 27.01.2016
comment
Верно. Простое использование Log.d отлично работает. Я мог видеть, как журнал появляется в «Android Monitor» студии Android. - person rpattabi; 05.10.2016

Я проверил код фреймворка и кажется, что он использует System.out.println, который также работает в тестах. К сожалению, в журнале Android этого нет.

person guni    schedule 22.02.2016