forked from qt-creator/qt-creator
AutoTest: Fix environment for ctest execution
The build environment may or may not contain the respective paths to get the tests running, but the run environment usually must have them correctly. Change-Id: I392f6b61551b5927646daf3055134628f6d4f536 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -32,6 +32,7 @@
|
||||
#include "../testsettings.h"
|
||||
|
||||
#include <projectexplorer/buildsystem.h>
|
||||
#include <projectexplorer/environmentaspect.h>
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/session.h>
|
||||
#include <projectexplorer/target.h>
|
||||
@@ -115,13 +116,17 @@ QList<ITestConfiguration *> CTestTreeItem::testConfigurationsFor(const QStringLi
|
||||
CTestConfiguration *config = new CTestConfiguration(testBase());
|
||||
config->setProject(project);
|
||||
config->setCommandLine(command);
|
||||
const QList<ProjectExplorer::BuildConfiguration *> buildConfigs = target->buildConfigurations();
|
||||
if (QTC_GUARD(!buildConfigs.isEmpty())) {
|
||||
config->setEnvironment(buildConfigs.first()->environment());
|
||||
config->setWorkingDirectory(buildConfigs.first()->buildDirectory().toString());
|
||||
} else {
|
||||
const ProjectExplorer::RunConfiguration *runConfig = target->activeRunConfiguration();
|
||||
if (QTC_GUARD(runConfig)) {
|
||||
if (auto envAspect = runConfig->aspect<ProjectExplorer::EnvironmentAspect>())
|
||||
config->setEnvironment(envAspect->environment());
|
||||
else
|
||||
config->setEnvironment(Utils::Environment::systemEnvironment());
|
||||
}
|
||||
const ProjectExplorer::BuildConfiguration *buildConfig = target->activeBuildConfiguration();
|
||||
if (QTC_GUARD(buildConfig))
|
||||
config->setWorkingDirectory(buildConfig->buildDirectory().toString());
|
||||
|
||||
if (selected.isEmpty())
|
||||
config->setTestCaseCount(testBase()->asTestTool()->rootNode()->childCount());
|
||||
else
|
||||
|
Reference in New Issue
Block a user