Ciaran Gallagher
Ciaran Gallagher

Reputation: 4020

Is it possible to run Coded UI tests without having to connect via remote desktop?

I'm attempting to automate Coded UI tests.

My test controller launches the tests on a remote test server, which I normally access via a Remote Desktop connection.

Is it possible to run the Coded UI tests without having to connect via remote desktop?

Currently, the tests only run when I have connected via Remote Desktop, and the window must be open. When I close the Remote Desktop session, the tests do not run.

If it isn't possible to run coded UI tests without remote desktop, how can I automate connecting via remote desktop?

Thanks

Upvotes: 18

Views: 17713

Answers (8)

user993669
user993669

Reputation: 19

--Preferred Solution 1: Have a Hyper-V Client and simply run coded UI tests using a schedule task. No issues at all.

--preferred Solution 2: You need to have 2 VM. First remote desktop to VM 1, then from VM 1 remote desktop to VM 2 where Coded UI will be running. Once Coded UI started in VM2, simply disconnect VM 1. This will keep the session opened and will never have any issues

-less preferred Solution 3: Restart VM using command line. Make sue auto-log in is enabled on your VM. Have a scheduled task to run coded UI.

I used this method and found some of my tests breaks.

--least preferred Solution 4: use tscon.exe %sessionname% /dest:console I used this method but cannot guarantee that your test will run with out any issues

Upvotes: -1

Metaphysico
Metaphysico

Reputation: 91

UPDATE:

Using the VSO or TFS2015 build system no longer need a remote connection for the tests to run. Create a build or a release running the task "Visual Studio Test Agent Deployment", then run the "Run Functional Tests" Task.

The best approach would probably be, create a build that drops your build artifacts, then create a release that deploys the site from the artifacts and runs the Coded UI Tests against that site.

NOTES:

  • If you start a remote connection manually the run will fail.
  • If you create a remote connection and disconnect instead of logging out the run will fail.
  • Auto login enabled and a restart will still allow these tests to run.
  • Using Hyper-V you can see the desktop of the server running the tests, it is a very small window but gives you an idea of what the server is doing.

Upvotes: 1

mejdev
mejdev

Reputation: 3758

I ran into the same issue with our remote test machine, but our test machines run on Hyper-V. With Hyper-V, the solution is simply to connect via Hyper-V instead of Remote Desktop Connection, and closing the Hyper-V connection won't lock the computer.

Another suggestion would be to get around the fact that Remote Desktop automatically locks your screen. There's a quick bit about that here: http://homeservershow.com/remote-desktop-session-locks-workstation-after-exit.html

Basically, run "tscon.exe RDP-Tcp#0 /dest:console" in command prompt from the remote machine when you want to disconnect. The machine should remain unlocked and the tests will run just fine.

According to @Zatricion, that command can be generalized:

tscon.exe %sessionname% /dest:console

Upvotes: 18

joinsaad
joinsaad

Reputation: 863

You can use VMware to run your coded ui tests. if you minimize the VM , test will still continue.

See this link for more details. http://www.binaryclips.com/2016/03/coded-ui-tests-executing-test-case.html

Upvotes: 0

user4269204
user4269204

Reputation: 21

this is very easy please check this blog post here this thing is explained in very simple way How to schedule Microsoft coaded UI test execution when you don’t have MS TFS

  1. Create a release of stable coded UI project by following steps i. Open Build > Batch build

ii. Click rebuild if a release was already built

  1. After successfully building coded UI project navigate to release folder of project and copy testAutomated.dll named with your project name

  2. Place this dll on remote machine where you want to schedule your test execution

  3. Place .dll in some directory of remote machine e.g I am placing in D:\coadedUitest

  4. Install Miscosoft Test agent from this link on this machine where you want to execute test . http://www.microsoft.com/en-us/download/details.aspx?id=38186

  5. After installing test agent verify MS test is present in location

  6. Open note pad and enter following text D: cd coadedUitest set mstestPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE" %mstestpath%\mstest /testcontainer:testAutomated.dll

  7. Save it with .bat extension

  8. Open .bat file by double clicking it to verify tests are executed or not

  9. After successful execution open windows task scheduler and create a scheduled task to run this created .bat file.

http://testingtoolstecniques.blogspot.com/2014/11/how-to-schedule-microsoft-coaded-ui.html

Upvotes: 2

Dave
Dave

Reputation: 7025

View/interact with the machine using VNC (for example, TightVNC )

Upvotes: 0

Ciaran Gallagher
Ciaran Gallagher

Reputation: 4020

The easiest solution to this problem was simply to enable auto-logon on my test environment (there are a variety of ways of doing this depending on OS).

With auto-logon enabled, when I restart the test environment (using the 'shutdown.exe /r' command, which can be scripted), the test environment loads back up with an active, logged on session, and so the tests can run successfully.

For my nightly test automation, I enabled auto-logon on my test environment and scheduled a restart prior to test execution.

I have had no issues with this method - and it means I don't have to connect via Remote Desktop.

Upvotes: 4

chaliasos
chaliasos

Reputation: 9783

From MSDN:

The computer that is running an agent on which you want to run coded UI tests cannot be locked or have an active screen saver.

If you are running your CodedUi Tests through Visual Studio (means that tests are executed under your account), I believe that you must be connected via remote desktop to the remote test server.

However, you can use Microsoft Test Manager to run your tests:

  1. Create a virtual environment.
  2. Setup your virtual machines so they can run automated tests.
  3. Install the Test Controller and Test Agent.
    -Set up the Test Agent to run as Interactive Proccess so it can run CodedUi Tests.
    -Set up the Test Controller to run with Microsoft Test Manager.
  4. Create a Test Plan through MTM and run tour tests in your virtual environment. There is no need to be connected in the remote server now, because your tests will run under the account that runs the Test Agent (note: you should create one for testing purposes).

Upvotes: 3

Related Questions