Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins上的Android单元测试_Android_Unit Testing_Ant_Jenkins_Break - Fatal编程技术网

Jenkins上的Android单元测试

Jenkins上的Android单元测试,android,unit-testing,ant,jenkins,break,Android,Unit Testing,Ant,Jenkins,Break,我们将android项目与Jenkins集成,并自动执行单元测试,但存在一个问题即使单元测试失败,Jenkins构建也不会中断。 我们使用以下ANT目标运行单元测试:clean-emma-debug-install-test 我已经找到了,但它没有提供我所期望的,它有一个生成后操作解析monkey测试结果,但没有一个用于单元测试 是否可以解析生成输出并根据解析结果更改生成状态?或者在测试失败时中断生成的任何其他方法?我们在下面的简单规则文件中使用,您添加了“控制台输出解析”生成后操作,如果在测试

我们将android项目与Jenkins集成,并自动执行单元测试,但存在一个问题即使单元测试失败,Jenkins构建也不会中断。

我们使用以下ANT目标运行单元测试:
clean-emma-debug-install-test

我已经找到了,但它没有提供我所期望的,它有一个生成后操作解析monkey测试结果,但没有一个用于单元测试

是否可以解析生成输出并根据解析结果更改生成状态?或者在测试失败时中断生成的任何其他方法?

我们在下面的简单规则文件中使用,您添加了“控制台输出解析”生成后操作,如果在测试中发现任何与下面的regex
失败匹配的行,它会使生成不稳定。*

# 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)
如果在测试项目中使用,运行Android单元测试将导致输出与JUnit兼容的XML文件

测试运行完成后,您可以从emulator中提取XML文件,然后让Jenkins的内置JUnit支持解析该文件并根据需要更改构建结果