TestNG прекратить выполнение на TestListener - PullRequest
0 голосов
/ 07 ноября 2018

Я выполняю несколько наборов:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MasterSuite">
    <suite-files>
        <suite-file path="testSuite1" />
        <suite-file path="testSuite2" />
    </suite-files>
</suite>

У меня есть свой собственный TestListener, и я переопределяю методы onStart или onTestFailure . Со мной случилось, что в одном из них было исключение (проблема конфигурации). В этом случае исключение всплывает до выполнения Gradle и останавливает все выполнение. Я хотел бы прекратить выполнение только неправильного набора и продолжить с остальными пакетами. Любая идея?

Я думаю, что единственный вариант здесь - перехватить исключение, но как остановиться на выполнении текущего набора?

Вот исключение:

org.gradle.api.internal.tasks.testing.TestSuiteExecutionException: Не удалось завершить выполнение для Gradle Test Executor 1. at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop (SuiteTestClassProcessor.java:63) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:35) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:24) в org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch (ContextClassLoaderDispatch.java:32) в org.gradle.internal.dispatch.ProxyDispatchAdapter $ DispatchingInvocationHandler.invoke (ProxyDispatchAdapter.java:93) на com.sun.proxy. $ Proxy3.stop (неизвестный источник) на org.gradle.api.internal.tasks.testing.worker.TestWorker.stop (TestWorker.java:120) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:35) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:24) в org.gradle.internal.remote.internal.hub.MessageHub $ Handler.run (MessageHub.java:377) в org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute (ExecutorPolicy.java:54) в org.gradle.internal.concurrent.StoppableExecutorImpl $ 1.run (StoppableExecutorImpl.java:40) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:748) Причина: org.openqa.selenium.TimeoutException: timeout (Информация о сеансе: chrome = 63.0.3239.132) (информация о драйвере: chromedriver = 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881), платформа = Linux 4.9.77-31.58.amzn1.x86_64 x86_64) (ВНИМАНИЕ: сервер не предоставил никакой информации о трассировке стека) Длительность команды или время ожидания: 0 миллисекунды Информация о сборке: версия: '3.5.3', версия: 'a88d25fe6b', время: '2017-08-29T12: 42: 44.417Z' Системная информация: хост: 'e211dad05a4e', ip: '172.17.0.4', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.77-31.58.amzn1.x86_64', java.version: '1.8.0_151' Информация о драйвере: org.openqa.selenium.remote.RemoteWebDriver Capabilities [{mobileEmulationEnabled = false, hasTouchScreen = false, платформа = LINUX, acceptSslCerts = false, acceptInsecureCerts = false, webStorageEnabled = true, browserName = chrome, takeScreenshot = true, javascriptEnabled = true, platformName = LINUX, setWindowRect = true, surpriseAlertBehaviour =, applicationCacheEnabled = false, вращающийся = false, networkConnectionEnabled = false, хром = {chromedriverVersion = 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881), UserDataDir = / TMP / .org.chromium.Chromium.aeHoaR}, takeHeapSnapshot = true, pageLoadStrategy = normal,unhandledPromptBehavior =, databaseEnabled = false, handlesAlerts = true, версия = 63.0.3239.132, browserConnectionEnabled = false, nativeEvents = true, locationContextEnabled = true, cssSelectorsEnabled = true}] Идентификатор сеанса: 2a478f187f329e2498c98b401ac8131b в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance (Constructor.java:423) в org.openqa.selenium.remote.ErrorHandler.createThrowable (ErrorHandler.java:215) в org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.java:167) в org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue (JsonHttpResponseCodec.java:40) в org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode (AbstractHttpResponseCodec.java:82) в org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode (AbstractHttpResponseCodec.java:45) в org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:164) в org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:646) в org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:703) в org.openqa.selenium.remote.RemoteWebDriver $ RemoteNavigation.refresh (RemoteWebDriver.java:962) в common.core.listeners.TestListener.onTestFailure (TestListener.java:310) в org.testng.internal.TestListenerHelper.runTestListeners (TestListenerHelper.java:67) в org.testng.internal.Invoker.runTestListeners (Invoker.java:1389) в org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1042) в org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java:125) в org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) в org.testng.TestRunner.privateRun (TestRunner.java:648) в org.testng.TestRunner.run (TestRunner.java:505) в org.testng.SuiteRunner.runTest (SuiteRunner.java:455) в org.testng.SuiteRunner.runSequentially (SuiteRunner.java:450) в org.testng.SuiteRunner.privateRun (SuiteRunner.java:415) в org.testng.SuiteRunner.run (SuiteRunner.java:364) в org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) в org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:84) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1208) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1204) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1204) в org.testng.TestNG.runSuitesSequentially (TestNG.java:1204) в org.testng.TestNG.runSuitesLocally (TestNG.java:1137) в org.testng.TestNG.runSuites (TestNG.java:1049) в org.testng.TestNG.run (TestNG.java:1017) в org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests (TestNGTestClassProcessor.java:129) в org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop (TestNGTestClassProcessor.java:88) в org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop (SuiteTestClassProcessor.java:61) ... еще 22 * ​​1015 *

...