2013-12-25 3 views
3

Мы интегрировали проекты Android с Jenkins и автоматически выполняли модульные тесты, но у вас была проблема. Конструкция Jenkins не повреждена, даже если аппаратные тесты не работают.Тесты на Android-устройства на Jenkins

Мы запускаем модульные тесты с помощью следующего ANT целей: clean emma debug install test

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

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

ответ

2

Мы использовали Log Parser Plugin со следующим файлом простого правила, можно добавить «Console Output» Разбор после сборки действия, и это может сделать сборки нестабильны, если она находит какую-либо строку, соответствующую ниже регулярное выражение Failure in test.*.

# match line starting with 'error ', case-insensitive 
error /Failure in test.*/ 

Это соответствует следующий образец,

[exec] Failure in testAndroidTestCaseSetupProperly: 
[exec] junit.framework.AssertionFailedError: test 
[exec] at tr.com.turkcell.turkcellid.SecureStorageTests.setUp(SecureStorageTests.java:22) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) 
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) 
[exec] 
[exec] Failure in testDelete: 
[exec] junit.framework.AssertionFailedError: test 
[exec] at tr.com.turkcell.turkcellid.SecureStorageTests.setUp(SecureStorageTests.java:22) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) 
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) 
[exec] 
[exec] Failure in testFail: 
[exec] junit.framework.AssertionFailedError: test 
[exec] at tr.com.turkcell.turkcellid.SecureStorageTests.setUp(SecureStorageTests.java:22) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) 
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) 
[exec] 
[exec] Failure in testReadWithFalseEnryptionKey: 
[exec] junit.framework.AssertionFailedError: test 
[exec] at tr.com.turkcell.turkcellid.SecureStorageTests.setUp(SecureStorageTests.java:22) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) 
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) 
[exec] 
[exec] Failure in testWriteRead: 
[exec] junit.framework.AssertionFailedError: test 
[exec] at tr.com.turkcell.turkcellid.SecureStorageTests.setUp(SecureStorageTests.java:22) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 
[exec] at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 
[exec] at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554) 
[exec] at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701) 
1

Если вы используете Android JUnit report test runner в тестовом проекте, показ Android модульных тестов приведет к JUnit-совместимый XML файл выводимого.

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

Смежные вопросы