Add runOnly command

This commit is contained in:
Erjan Gavalji
2015-11-02 13:18:15 +02:00
parent 11937129f3
commit 9e6ce564a0
3 changed files with 65 additions and 28 deletions

View File

@ -14,7 +14,9 @@ module.exports = {
emuAvdName: grunt.option("avd"), emuAvdName: grunt.option("avd"),
outFile: grunt.option("logFilePath"), outFile: grunt.option("logFilePath"),
runtimePath: grunt.option("runtimePath"), runtimePath: grunt.option("runtimePath"),
showEmu: grunt.option("showEmu") showEmu: grunt.option("showEmu"),
runAppOnly: grunt.option("runAppOnly"),
pathToApp: grunt.option("pathToApp")
}; };
(function validateInput(){ (function validateInput(){
@ -30,6 +32,10 @@ module.exports = {
throw new Error("Please, specify the name of the AVD to start (--avd=...)."); throw new Error("Please, specify the name of the AVD to start (--avd=...).");
} }
} }
if (args.runAppOnly && !args.pathToApp) {
throw new Error("runAppOnly called, but no path to application specified. Please, add the path via the (--pathToApp=...) parameter.");
}
}()); }());
var localCfg = { var localCfg = {
@ -40,6 +46,7 @@ module.exports = {
outFile: args.outFile || "./TestRunResult.txt", outFile: args.outFile || "./TestRunResult.txt",
frameworkArgument: args.runtimePath ? " --frameworkPath=" + args.runtimePath : "", frameworkArgument: args.runtimePath ? " --frameworkPath=" + args.runtimePath : "",
showEmu: args.showEmu || false, showEmu: args.showEmu || false,
runAppOnly: args.runAppOnly || false,
workingDir:".testsapprun", workingDir:".testsapprun",
testsAppName:"TestsApp", testsAppName:"TestsApp",
@ -54,6 +61,10 @@ module.exports = {
platform: args.platform platform: args.platform
} }
if (localCfg.runAppOnly) {
localCfg.pathToApp = localCfg.pathToApk = args.pathToApp;
}
grunt.initConfig({ grunt.initConfig({
clean: { clean: {
workingDir: { workingDir: {
@ -260,40 +271,57 @@ module.exports = {
"copy:simulatorLog" "copy:simulatorLog"
]); ]);
grunt.registerTask("doPostPlatformAddAndroid", [ grunt.registerTask("doPreUninstallAppAndroid", [
"exec:restartAdb" "exec:restartAdb"
]); ]);
grunt.registerTask("doPostPlatformAddiOS", [ grunt.registerTask("doPreUninstallAppiOS", [
"clean:simulatorLog" "clean:simulatorLog"
]); ]);
grunt.registerTask("testsapp", [ grunt.registerTask("buildTestsApp", [
"clean:workingDir", "clean:workingDir",
"mkdir:workingDir", "mkdir:workingDir",
getPlatformSpecificTask("exec:kill{platform}Emulator"), getPlatformSpecificTask("exec:kill{platform}Emulator"),
getPlatformSpecificTask("startEmulator{platform}"), getPlatformSpecificTask("startEmulator{platform}"),
"exec:createApp", "exec:createApp",
"clean:originalAppDir", "clean:originalAppDir",
"copy:testsAppToRunDir", "copy:testsAppToRunDir",
"clean:modules", "clean:modules",
"untar:modules", "untar:modules",
"copy:modulesToDir", "copy:modulesToDir",
"clean:tempExtractedModules", "clean:tempExtractedModules",
"exec:addPlatform", "exec:addPlatform",
getPlatformSpecificTask("copy:add{platform}Permissions"), getPlatformSpecificTask("copy:add{platform}Permissions"),
"shell:buildApp", "shell:buildApp",
getPlatformSpecificTask("doPostPlatformAdd{platform}"),
getPlatformSpecificTask("exec:uninstallExisting{platform}App"),
getPlatformSpecificTask("exec:installNew{platform}App"),
getPlatformSpecificTask("exec:start{platform}App"),
getPlatformSpecificTask("collectLog{platform}"),
getPlatformSpecificTask("exec:kill{platform}Emulator"),
"clean:workingDir"
]); ]);
grunt.registerTask("runApp", [
getPlatformSpecificTask("doPreUninstallApp{platform}"),
getPlatformSpecificTask("exec:uninstallExisting{platform}App"),
getPlatformSpecificTask("exec:installNew{platform}App"),
getPlatformSpecificTask("exec:start{platform}App"),
getPlatformSpecificTask("collectLog{platform}"),
]);
grunt.registerTask("cleanup", [
getPlatformSpecificTask("exec:kill{platform}Emulator"),
"clean:workingDir"
]);
var tasksToExecute = ["runApp"];
if (!localCfg.runAppOnly) {
tasksToExecute = [
"buildTestsApp",
"runApp",
"cleanup"
];
}
grunt.registerTask("testsapp", tasksToExecute);
} }
} }

View File

@ -1,6 +1,6 @@
module.exports = function(grunt) { module.exports = function(grunt) {
if (grunt.cli.tasks.indexOf("testsapp") >= 0) { if (grunt.cli.tasks.indexOf("testsapp") || grunt.cli.tasks.indexOf("buildtestsapp")>= 0) {
var tsTester = require("./build/run-testsapp.grunt.js"); var tsTester = require("./build/run-testsapp.grunt.js");
tsTester.run(grunt); tsTester.run(grunt);
} else { } else {

9
run.sh Executable file
View File

@ -0,0 +1,9 @@
#! /bin/bash
#grunt testsapp --verbose --platform=Android --emuPId=".*emulator64-x86" --avd="Api19" --logFilePath="./TestRunResult.txt" --runtimePath="/Users/erjan/tns-android.tgz" --showEmu=true --modulesPath=/Volumes/distributions/DailyBuilds/NativeScript/tns-modules/Stable/tns-core-modules.tgz
#grunt testsapp --verbose --platform=iOS --logFilePath="./TestRunResult.txt" --runtimePath="/Users/erjan/tns-ios.tgz" --showEmu=true --modulesPath=/Volumes/distributions/DailyBuilds/NativeScript/tns-modules/Stable/tns-core-modules.tgz --avd="'iPhone 6 (9.0) ['"
grunt buildTestsApp --verbose --platform=iOS --logFilePath="./TestRunResult.txt" --runtimePath="/Users/erjan/tns-ios.tgz" --showEmu=true --modulesPath=/Volumes/distributions/DailyBuilds/NativeScript/tns-modules/Stable/tns-core-modules.tgz --avd="'iPhone 6 (9.0) ['"
#grunt testsapp --verbose --platform=iOS --runAppOnly --logFilePath="./TestRunResult.txt" --runtimePath="/Users/erjan/tns-ios.tgz" --showEmu=true --modulesPath=/Volumes/distributions/DailyBuilds/NativeScript/tns-modules/Stable/tns-core-modules.tgz --avd="'iPhone 6 (9.0) ['"