diff --git a/build/run-testsapp.grunt.js b/build/run-testsapp.grunt.js index 86d85a311..3ecb5ef01 100644 --- a/build/run-testsapp.grunt.js +++ b/build/run-testsapp.grunt.js @@ -14,7 +14,9 @@ module.exports = { emuAvdName: grunt.option("avd"), outFile: grunt.option("logFilePath"), runtimePath: grunt.option("runtimePath"), - showEmu: grunt.option("showEmu") + showEmu: grunt.option("showEmu"), + runAppOnly: grunt.option("runAppOnly"), + pathToApp: grunt.option("pathToApp") }; (function validateInput(){ @@ -30,6 +32,10 @@ module.exports = { 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 = { @@ -40,6 +46,7 @@ module.exports = { outFile: args.outFile || "./TestRunResult.txt", frameworkArgument: args.runtimePath ? " --frameworkPath=" + args.runtimePath : "", showEmu: args.showEmu || false, + runAppOnly: args.runAppOnly || false, workingDir:".testsapprun", testsAppName:"TestsApp", @@ -54,6 +61,11 @@ module.exports = { platform: args.platform } + if (localCfg.runAppOnly) { + localCfg.pathToApp = localCfg.pathToApk = args.pathToApp; + localCfg.applicationDir = "./"; + } + grunt.initConfig({ clean: { workingDir: { @@ -189,7 +201,7 @@ module.exports = { }, startiOSApp: { cmd: "xcrun simctl launch " + localCfg.emuAvdName + " org.nativescript." + localCfg.testsAppName - }, + } }, untar: { modules: { @@ -260,42 +272,70 @@ module.exports = { "copy:simulatorLog" ]); - grunt.registerTask("doPostPlatformAddAndroid", [ + grunt.registerTask("doPreUninstallAppAndroid", [ "exec:restartAdb" ]); - grunt.registerTask("doPostPlatformAddiOS", [ + grunt.registerTask("doPreUninstallAppiOS", [ "clean:simulatorLog" ]); - -//xcrun instruments -s - grunt.registerTask("testsapp", [ - "clean:workingDir", - "mkdir:workingDir", - getPlatformSpecificTask("exec:kill{platform}Emulator"), - getPlatformSpecificTask("startEmulator{platform}"), - - "exec:createApp", - "clean:originalAppDir", - "copy:testsAppToRunDir", - "clean:modules", - "untar:modules", - "copy:modulesToDir", - "clean:tempExtractedModules", - - "exec:addPlatform", - getPlatformSpecificTask("copy:add{platform}Permissions"), - "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("cleanup", [ + getPlatformSpecificTask("exec:kill{platform}Emulator"), + "clean:workingDir" ]); + + grunt.registerTask("buildOnly", [ + "exec:createApp", + "clean:originalAppDir", + "copy:testsAppToRunDir", + "clean:modules", + "untar:modules", + "copy:modulesToDir", + "clean:tempExtractedModules", + + "exec:addPlatform", + getPlatformSpecificTask("copy:add{platform}Permissions"), + "shell:buildApp", + ]); + + grunt.registerTask("buildTestsApp", [ + "cleanup", + "mkdir:workingDir", + "buildOnly" + + ]); + + grunt.registerTask("runOnly", [ + getPlatformSpecificTask("doPreUninstallApp{platform}"), + + getPlatformSpecificTask("exec:uninstallExisting{platform}App"), + getPlatformSpecificTask("exec:installNew{platform}App"), + getPlatformSpecificTask("exec:start{platform}App"), + getPlatformSpecificTask("collectLog{platform}"), + ]); + + grunt.registerTask("runApp", [ + "cleanup", + getPlatformSpecificTask("startEmulator{platform}"), + "runOnly", + "cleanup" + + ]); + + + var tasksToExecute = ["runApp"]; + if (!localCfg.runAppOnly) { + tasksToExecute = [ + "cleanup", + "mkdir:workingDir", + getPlatformSpecificTask("startEmulator{platform}"), + "buildOnly", + "runOnly", + "cleanup" + ]; + } + + grunt.registerTask("testsapp", tasksToExecute); } } diff --git a/gruntfile.js b/gruntfile.js index b584ab7b9..c19a9987f 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -1,6 +1,6 @@ module.exports = function(grunt) { - if (grunt.cli.tasks.indexOf("testsapp") >= 0) { + if (grunt.cli.tasks.indexOf("testsapp") >= 0 || grunt.cli.tasks.indexOf("buildTestsApp")>= 0) { var tsTester = require("./build/run-testsapp.grunt.js"); tsTester.run(grunt); } else { diff --git a/package.json b/package.json index bdfc82587..49583fbe2 100644 --- a/package.json +++ b/package.json @@ -28,5 +28,6 @@ "grunt-untar": "0.0.1", "mocha": "2.2.5", "typescript": "1.6.2" - } + }, + "typings": "tns-core-modules.d.ts" }