Page 1 of 1

Run multiple projects through powershell

Posted: Mon Jan 22, 2018 7:14 pm
by barkha
Greetings.
I have created multiple Ranorex projects that cover different parts of our software. I would now like to run all projects sequentially using powershell whenever there is a new version. However, I am new to powershell and do not have a lot of experience. I want to know if someone has ever tried it before. Is there a way to tell powershell about test statistics ? will we have to go through all the reports manually.

Re: Run multiple projects through powershell

Posted: Tue Jan 23, 2018 2:44 pm
by McTurtle
Hello barkha,

PowerShell can pick up the exit codes of applications. "0" means that the test was successful. "-1" would mean that the test has failed. You would then have to check all the reports for the tests where the exit code was not "0".

Furthermore, PowerShell can also wait for the application to exit before starting a new one.

The following example would start one test, then give you the information if the test has exited and than tell you the exit code of the test. After that, it would do the same for the 2nd test:

$process = Start-Process "C:\Users\username\Documents\Ranorex\RanorexStudio Projects\xxx\bin\Debug\xxx.exe" -NoNewWindow -Wait -PassThru
$process.HasExited
$process.ExitCode
$process = Start-Process "C:\Users\username\Documents\Ranorex\RanorexStudio Projects\yyy\bin\Debug\yyy.exe" -NoNewWindow -Wait -PassThru
$process.HasExited
$process.ExitCode

I found the part with the exit codes here: PowerShell: How to get exit code of a process

Depending on the exit code you could then implement an "if" sentence that would copy the last report to some other folder if the exit code was anything other but "0". You would then have already all the failed reports in a special folder.

Everything that you mentioned is possible to do with PowerShell. I hope that my post gives you some feeling about where to start.

Regards,
McTurtle

Re: Run multiple projects through powershell

Posted: Wed Jan 31, 2018 4:11 pm
by barkha
Thanks McTurtle,
I was able to work on your scripts and so far I can execute all test and identify failed test to save and zip and send them to my email. However, I am trying to pass a global variable to all tests. How do I do it through powershell? If I type C:\Users\username\Documents\Ranorex\RanorexStudio Projects\xxx\bin\Debug\xxx.exe/param:Global_DeviceName=iPhone6, I get file not found error.
I can't find any information on this.
Thank you

Re: Run multiple projects through powershell

Posted: Mon Feb 05, 2018 1:47 pm
by McTurtle
Hello barkha,

You need to first create a collection of arguments and then pass it with the "-ArgumentList". It would look like this (added parts in bold):

$RxArguments = '/param:Global_DeviceName=iPhone6'
$process = Start-Process "C:\PathToExe\xxx.exe" -NoNewWindow -Wait -PassThru -ArgumentList $RxArguments

Don't try to attach it to the path of the executable.
I found this info on Stackoverflow: ArgumentList parameter syntax

Regards,
McTurtle

Re: Run multiple projects through powershell

Posted: Thu Feb 08, 2018 12:05 am
by barkha
Hello,
$RxArguments = '/param:Global_Parameter=($parameter)'
$process = Start-Process "Path\bin\Debug\Project.exe" -NoNewWindow -Wait -PassThru -ArgumentList $RxArguments

That is how I am trying to use the code I am tying to pass it to a global variable which is binded to a local variable. I intend to use this variable to update the location for Ranorex reports like this:
I am calling the code function in test case the function has code :
TestReport.Setup(ReportLevel.Debug,local_variable, true);


Nothing is working. I am using version 8 and I know that there is issue with params with space but the path I am passing has no spaces. I also tried passing a global variable and print in textbox but the value is never passed. I tried debugging too but I can't locate the error. Am I missing some connection here?

Re: Run multiple projects through powershell

Posted: Thu Feb 08, 2018 12:45 pm
by McTurtle
Hello barkha,

$RxArguments = '/param:Global_Parameter=($parameter)' can't work.
You need to build the string by using '+': $RxArguments = '/param:Global_DeviceName=('+$parameter+')'

Unfortunately, I don't understand the rest of your post :) Are we still talking about PowerShell or is it something else? Please do explain the question in more detail.

Regards,
McTurtle

Re: Run multiple projects through powershell

Posted: Fri Feb 09, 2018 4:13 pm
by barkha
Hello McTurtle,
Yes we are still talking about powershell
I want to pass a path through powershell where I want my ranorex reports to be saved.
This path change and I do not want to change it using Ranorex UI.
I saw on a diffrent forum that you can use something like : TestReport.Setup(ReportLevel.Debug,path, true);
And I was trying to use it in ranorex user code method.
So then I have a user method that has this code and take path as an agument, the path parameter is binded to a global variable that is being passed from powershell.
Flow of data:
Powershell> Ranorex>User code (To change the location where the test reports of that project are to be saved)

I hope this clear things up.

Re: Run multiple projects through powershell

Posted: Mon Feb 12, 2018 5:16 pm
by McTurtle
Hello barkha,

You could use the already provided attribute "/rf:". You can pass the report file name and the folder via this parameter. I would try to avoid setting up the report via code.

You can find the rest of the available arguments under the following link: Running Tests without Ranorex Studio

Does this help?

Regards,
McTurtle

Re: Run multiple projects through powershell

Posted: Mon Feb 12, 2018 7:38 pm
by barkha
Hello Everyone,
Sorry for digressing.
Here is how it works, for people who might want to save their files on new locations:
You need to add /rf:"location" at the end of Ranorex.exe like :

Start-Process -FilePath $exe_path/rf:"location\filename.extension"

Re: Run multiple projects through powershell

Posted: Tue Feb 13, 2018 2:27 pm
by hubjohn
I would now like to run all projects sequentially using powershell whenever there is a new version. However, I am new to powershell and do not have a lot of experience.

Re: Run multiple projects through powershell

Posted: Thu Feb 15, 2018 4:51 pm
by asdf
Hi hubjohn,

I don't think that this approach is possible with using the powershell. However, I would suggest having a look at CI tools like Jenkins or Bamboo. I think that this is exactly what you are looking for.

Hope that helps.

Re: Run multiple projects through powershell

Posted: Fri Jul 27, 2018 3:55 pm
by barkha
Dear hubjon and asfd,
If you are using Mirosoft tfs , you can create a job that run your script that will run after every update. This script can then in turn run your tests.