diff --git a/src/plugins/autotest/testrunner.cpp b/src/plugins/autotest/testrunner.cpp index 81bc2c7451d..9fa78e0547d 100644 --- a/src/plugins/autotest/testrunner.cpp +++ b/src/plugins/autotest/testrunner.cpp @@ -362,12 +362,24 @@ static bool askUserForRunConfiguration(TestConfiguration *config) void TestRunner::runTests() { + QList toBeRemoved; for (TestConfiguration *config : m_selectedTests) { config->completeTestInformation(TestRunMode::Run); if (!config->hasExecutable()) - if (askUserForRunConfiguration(config)) - config->completeTestInformation(config->originalRunConfiguration(), TestRunMode::Run); + if (!askUserForRunConfiguration(config)) + toBeRemoved.append(config); } + for (TestConfiguration *config : toBeRemoved) + m_selectedTests.removeOne(config); + qDeleteAll(toBeRemoved); + toBeRemoved.clear(); + if (m_selectedTests.isEmpty()) { + emit testResultReady(TestResultPtr(new FaultyTestResult(Result::MessageWarn, + tr("No test cases left for execution. Canceling test run.")))); + onFinished(); + return; + } + QFuture future = Utils::runAsync(&performTestRun, m_selectedTests, *AutotestPlugin::instance()->settings()); m_futureWatcher.setFuture(future);