Так что я сдаюсь. Я подошел к этой проблеме как о, эй, это не так уж плохо, я могу написать кучу юнит-тестов, и я держу свой пакет зеленым.Однако по мере того, как дела становятся более сложными, непрерывная интеграция и тестирование - это отличная вещь.А потом я увидел, что в Android есть интеграция с emma, и это здорово. И вот тут-то и получается.
Итак, я настроил Hudson и заставил его вызвать цель покрытия ant build.xml, которую исполняемый файл androidв SDK может генерировать.И тогда это поражает меня.
adb -s <emulator> shell am instrument -w ...
никогда не вернет код результата, который не равен 0 ..., потому что adb технически завершился чисто и обычно будет происходить независимо от того, как выполнялась выполненная команда оболочки.
Итак, еще раз я говорю: «О, это не так уж и плохо, я могу просто обернуть adb синтаксическим анализатором, который анализирует выходные данные на наличие ошибок и возвращает не 0 код результата, чтобы не выполнить мою сборку в случае сбоя теста.Проблема в том, что я тоже хочу посмотреть, какие тесты не пройдены.Я знаю, что Eclipse делает что-то более умное, поэтому я копаю глубже и нахожу дополнительные переключатели, которые вы можете передать инструменту, включая флаг -r.
adb -s <emulator> shell am instrument -r -w ...
Теперь это начинает усложняться, так как результат становится более сложным, а эта изначально задуманная простая задача становится более интенсивной.Поскольку этот SDK становится все более зрелым, я должен думать, что кто-то перенес эту боль.Однако мне удалось найти только рамки для тестирования черного ящика, а не что-либо похожее на автоматизацию набора регрессионных тестов для сортировки whitebox.
Любые предложения приветствуются.