在第一次使用TFS进行自动测试的新手中,所以我尝试使用Error来尝试很多东西。 但我希望你能给我一些想法我可能做错了。
我在Microsoft测试管理器中设置了一个环境,如MSDN的几个博客中所描述的那样。例如http://msdn.microsoft.com/en-us/library/hh873102.aspx#Prerequisites。
我的基础架构如下:构建服务器和测试控制器在同一台机器(Win2012)上,但我的测试代理(Win2008R2)是另一台机器。一切都是TFS 2013或VS 2013 Update 3。
我有一个Build定义,它将Buildserver上的Tests构建到指定的Dropfolder中。这工作正常。和第二个构建定义,它使用LabDefaultTemplate.11来处理环境。在我指定环境,另一个构建定义部署脚本和我的测试计划与相关的自动化测试。
但如果我尝试启动Build-Deploy-Test工作流程,我会得到两个结果。 首先,在没有指定Deploment Script的情况下,工作流程达到测试运行并且工作流程变得无穷无尽(它运行16小时)然后我中止了它。 第二个我指定了部署脚本,现在看起来我得到了相同的但是在部署步骤。我让它运行了近20分钟,我在VM控制台上看了我的代理。 我所看到的只是他有时会在短时间内断开连接,然后再次在线。
现在我问,为什么这个Build Workflow会变得无穷无尽?
测试将是CodedUiTests。
这里停止了最后一次运行的日志:
20:37 Overall Build Process
20:37 Application Deployment Workflow
00:00 Update Build Number
00:00 Get Build Details
01:00 If Build is needed
01:00 Do Build
00:00 Start Build Workflow
01:00 Wait For Build To Complete
00:00 Set Build Location
00:00 Get Build Location And Build Number
00:00 Compute build location needed
00:00 Compute build path
00:00 If user selected stored environment
00:00 Get Lab Environment Uri
00:00 Get Lab Environment
00:00 If Restore Snapshot
00:00 No Clean Snapshot
00:00 If Virtual Environment
00:00 If deployment or test needed
00:00 Wait For Environment To Be Ready
19:36 If deployment needed
19:36 Do deployment
00:00 Reserve Environment For Deployment
19:36 Deploy Build on Environment
19:36 Deploying Build
19:36 Run Deployment scripts
19:36 Run Deployment Task Deployment Task Logs for Machine: Win2008R2
00:00 Release Environment From Deployment
如果您需要更具体的信息,请留下所需要的答案,我会关心它,但我实际上不知道您需要什么,也不想过度填写这个问题
2014年12月16日编辑:
这里是要求的详细信息:
Deploying Build 00:30:00
Run Deployment scripts 00:30:00
Inputs
Values: Win2008R2TA02 | $(BuildLocation)\Uitest\deploymentScript.cmd $(BuildLocation)
Run Deployment Task00:30:00
Inputs
UseRoleForDeployment: False
MaxWaitTime: 00:30:00
ThrowOnError: True
BuildLocation: \\BuildServer\TFS Build\UiTest.Dev.Build\UiTest.Dev.Build_20141216.1
LabEnvironmentUri: vstfs:///LabManagement/LabEnvironment/11
DeploymentScriptDetails: Win2008R2TA02 | $(BuildLocation)\Uitest\deploymentScript.cmd $(BuildLocation)
我在互联网上找到的部署脚本,但我认为这可能有效。
REM set build path
set buildlocation=%1
REM set deployment path
set targetdir="C:\deploy"
REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)
REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%
REM if you are using a deployment package you can run it here, after you copy it to your deployment directory
我称之为:
$(BuildLocation)\Uitest\deploymentScript.cmd $(BuildLocation)
在测试控制器的Eventlog中,在Build运行时有一些错误重复: 服务控制Managar:
Visual Studio测试控制器服务意外终止。它 已经完成了这一次。以下纠正措施将是 在0毫秒内完成:重新启动服务。
.Net Runtime:
应用程序:QTController.exe Framework版本:v4.0.30319 描述:由于未处理的异常,进程终止。 异常信息:System.NullReferenceException Stack:at Microsoft.TeamFoundation.TestManagement.Controller.BuildDropDownloadManager.GetLocalSharePath(System.String) 在 Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.IsUsingServerDrop(Microsoft.VisualStudio.TestTools.Execution.DeploymentTask) 在 Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.ProvisionBuildSharePermision(Microsoft.VisualStudio.TestTools.Execution.DeploymentTask) 在 Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.ProcessNewDeploymentTasks() 在 Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.Poll(System.Object的) 在System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object,Boolean)at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object,Boolean)at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object)at System.Threading.ThreadHelper.ThreadStart(System.Object的)
我试过这个解决方案,但我没有帮助和链接相关我没有“Web Access”文件夹来清除缓存。 https://social.msdn.microsoft.com/Forums/vstudio/en-US/c1ba09a8-5b8a-4c6d-8635-83085593647b/tfs-2013-deploy-to-testlab-is-failing-labdefaulttemplate11?forum=tfsbuild
我真的坚持这个问题。非常感谢任何帮助。
答案 0 :(得分:1)
好的,我发现了这个问题。 问题是Buildserver上的Visual Studio和MTM安装已损坏,还安装了TestController。
如果您偶然发现此问题,请尝试以下方法。 - 所有组件是否在同一版本上(在我的情况下为2013 Update 3)还检查代理和控制器(在其配置对话框中,您找到一个关于按钮) - 在服务器上打开MTM并检查它是否可以在项目的不同测试计划之间切换(在m情况下会出现错误,这就是Controller无法将案例交付给代理的原因。)
如果在我的情况下,请尝试卸载并重新安装Visual Studio和MTM 我的命令是在安装VS然后MTM然后实际更新后卸载第一个MTM然后VS.
答案 1 :(得分:0)
visual studio上的构建报告日志并不是很好。你检查过tfs网站上的日志了吗? (构建失败的报告 - >诊断 - >查看日志或在构建的网站上 - >定义 - >诊断)
您是否设置了部署脚本的超时? 16个小时很长一段时间。 您还可以将部署代码链接到脚本。您是否在代理上运行任何其他测试?您是否检查了登录名/密码并停用了代理上的登录屏幕,因为tfs在访问时遇到问题。