summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesper K. Pedersen <jesper.pedersen@kdab.com>2013-05-14 11:24:05 +0200
committerJesper K. Pedersen <jesper.pedersen@kdab.com>2013-05-14 19:41:36 +0200
commit36823affca3dc1584e81173c740304df97810a3f (patch)
treea448a789d967bb2a3303661b337802c510eae566
parentb52c0d5d00ee100eddd0215ad4c891f8067df76e (diff)
make it possible to run unit tests from the command line
Simply execute qtcreator like this: qtcreator -execute-script <path-to-tests-directory>/runtests.qs Change-Id: I60f706218af8653cc5cc945797062125d919f57c Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
-rw-r--r--Scripting.pluginspec.in3
-rw-r--r--scriptingplugin.cpp19
-rw-r--r--scriptingplugin.h2
3 files changed, 23 insertions, 1 deletions
diff --git a/Scripting.pluginspec.in b/Scripting.pluginspec.in
index 538bf51..c902dd1 100644
--- a/Scripting.pluginspec.in
+++ b/Scripting.pluginspec.in
@@ -20,4 +20,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
<dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"CppEditor\" version=\"$$QTCREATOR_VERSION\"/>
</dependencyList>
+ <argumentList>
+ <argument name=\"-execute-script\" parameter=\"path\">execute the script specified</argument>
+ </argumentList>
</plugin>
diff --git a/scriptingplugin.cpp b/scriptingplugin.cpp
index 46b1394..fc5a24f 100644
--- a/scriptingplugin.cpp
+++ b/scriptingplugin.cpp
@@ -34,8 +34,10 @@
#include "scriptingconstants.h"
#include "scriptmanager.h"
#include "runscriptlocatorfilter.h"
+#include <coreplugin/messagemanager.h>
#include <QtPlugin>
+#include <QFileInfo>
using namespace Scripting::Internal;
@@ -50,13 +52,16 @@ ScriptingPlugin::~ScriptingPlugin()
bool ScriptingPlugin::initialize(const QStringList &arguments, QString *errorString)
{
- Q_UNUSED(arguments)
Q_UNUSED(errorString)
addAutoReleasedObject(new RunScriptLocatorFilter);
m_scriptManager = new ScriptManager(this);
+ for ( int i=0; i< arguments.count(); ++i )
+ if ( arguments[i] == QLatin1String("-execute-script"))
+ m_startUpScript = arguments[i+1];
+
return true;
}
@@ -67,6 +72,18 @@ void ScriptingPlugin::extensionsInitialized()
// plugins that depend on it are completely initialized."
}
+bool ScriptingPlugin::delayedInitialize()
+{
+ if ( m_startUpScript.isNull() )
+ return false;
+ if (!QFileInfo(m_startUpScript).exists())
+ Core::MessageManager::instance()->printToOutputPane(tr("File %1 doesn't exists").arg(m_startUpScript),
+ Core::MessageManager::Flash);
+ else
+ m_scriptManager->runFile(m_startUpScript);
+ return true;
+}
+
ExtensionSystem::IPlugin::ShutdownFlag ScriptingPlugin::aboutToShutdown()
{
// Save settings
diff --git a/scriptingplugin.h b/scriptingplugin.h
index 0d73882..9a06df2 100644
--- a/scriptingplugin.h
+++ b/scriptingplugin.h
@@ -71,10 +71,12 @@ public:
bool initialize(const QStringList &arguments, QString *errorString);
void extensionsInitialized();
+ bool delayedInitialize();
ShutdownFlag aboutToShutdown();
private:
ScriptManager *m_scriptManager;
+ QString m_startUpScript;
};
} // namespace Internal