diff options
author | Jesper K. Pedersen <jesper.pedersen@kdab.com> | 2013-05-14 11:24:05 +0200 |
---|---|---|
committer | Jesper K. Pedersen <jesper.pedersen@kdab.com> | 2013-05-14 19:41:36 +0200 |
commit | 36823affca3dc1584e81173c740304df97810a3f (patch) | |
tree | a448a789d967bb2a3303661b337802c510eae566 | |
parent | b52c0d5d00ee100eddd0215ad4c891f8067df76e (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.in | 3 | ||||
-rw-r--r-- | scriptingplugin.cpp | 19 | ||||
-rw-r--r-- | scriptingplugin.h | 2 |
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 |