forked from qt-creator/qt-creator
AutoTest: Extract function to get active frameworks
For later re-use. Change-Id: I87cf6db4de861b626e4669351df3f5119952328f Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -438,6 +438,24 @@ void AutotestPluginPrivate::onRunUnderCursorTriggered(TestRunMode mode)
|
||||
m_testRunner.runTests(mode, testsToRun);
|
||||
}
|
||||
|
||||
TestFrameworks AutotestPlugin::activeTestFrameworks()
|
||||
{
|
||||
ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject();
|
||||
TestFrameworks sorted;
|
||||
if (!project || projectSettings(project)->useGlobalSettings()) {
|
||||
sorted = Utils::filtered(TestFrameworkManager::registeredFrameworks(),
|
||||
&ITestFramework::active);
|
||||
} else { // we've got custom project settings
|
||||
const TestProjectSettings *settings = projectSettings(project);
|
||||
const QHash<ITestFramework *, bool> active = settings->activeFrameworks();
|
||||
sorted = Utils::filtered(TestFrameworkManager::registeredFrameworks(),
|
||||
[active](ITestFramework *framework) {
|
||||
return active.value(framework, false);
|
||||
});
|
||||
}
|
||||
return sorted;
|
||||
}
|
||||
|
||||
void AutotestPlugin::updateMenuItemsEnabledState()
|
||||
{
|
||||
const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject();
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "autotest_global.h"
|
||||
#include "itestframework.h"
|
||||
|
||||
#include <extensionsystem/iplugin.h>
|
||||
|
||||
@@ -45,6 +45,7 @@ public:
|
||||
|
||||
static TestSettings *settings();
|
||||
static TestProjectSettings *projectSettings(ProjectExplorer::Project *project);
|
||||
static TestFrameworks activeTestFrameworks();
|
||||
static void updateMenuItemsEnabledState();
|
||||
static void cacheRunConfigChoice(const QString &buildTargetKey, const ChoicePair &choice);
|
||||
static ChoicePair cachedChoiceFor(const QString &buildTargetKey);
|
||||
|
@@ -299,21 +299,8 @@ QList<ITestTreeItem *> TestTreeModel::testItemsByName(const QString &testName)
|
||||
|
||||
void TestTreeModel::synchronizeTestFrameworks()
|
||||
{
|
||||
ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject();
|
||||
TestFrameworks sorted;
|
||||
if (!project || AutotestPlugin::projectSettings(project)->useGlobalSettings()) {
|
||||
sorted = Utils::filtered(TestFrameworkManager::registeredFrameworks(),
|
||||
&ITestFramework::active);
|
||||
qCDebug(LOG) << "Active frameworks sorted by priority" << sorted;
|
||||
} else { // we've got custom project settings
|
||||
const TestProjectSettings *settings = AutotestPlugin::projectSettings(project);
|
||||
const QHash<ITestFramework *, bool> active = settings->activeFrameworks();
|
||||
sorted = Utils::filtered(TestFrameworkManager::registeredFrameworks(),
|
||||
[active](ITestFramework *framework) {
|
||||
return active.value(framework, false);
|
||||
});
|
||||
}
|
||||
|
||||
const TestFrameworks sorted = AutotestPlugin::activeTestFrameworks();
|
||||
qCDebug(LOG) << "Active frameworks sorted by priority" << sorted;
|
||||
const auto sortedParsers = Utils::transform(sorted, &ITestFramework::testParser);
|
||||
// pre-check to avoid further processing when frameworks are unchanged
|
||||
TreeItem *invisibleRoot = rootItem();
|
||||
|
Reference in New Issue
Block a user