可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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
回答1:
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
回答2:
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.
回答3:
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:
- Create a virtual environment.
- Setup your virtual machines so they can run automated tests.
- 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.
- 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).
回答4:
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
- 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
After successfully building coded UI project navigate to release folder of project and copy testAutomated.dll named with your project name
Place this dll on remote machine where you want to schedule your test execution
Place .dll in some directory of remote machine e.g I am placing in D:\coadedUitest
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
After installing test agent verify MS test is present in location
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
Save it with .bat extension
Open .bat file by double clicking it to verify tests are executed or not
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
回答5:
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.
回答6:
View/interact with the machine using VNC (for example, TightVNC )
回答7:
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
回答8:
--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