Deployment 生成部署测试工作流未到达测试代理
起初,我对使用TFS的自动化测试还不熟悉,所以我尝试了很多实际的东西,但都有试错。 但我希望你能给我一些想法,我可能做错了什么 我已经在Microsoft测试管理器中设置了一个环境,如MSDN的几个博客中所述。比如说 我的基础结构如下:构建服务器和测试控制器在同一台机器上(Win2012),但我的测试代理(Win2008R2)是另一台机器。一切都是TFS 2013或VS 2013更新3 我有一个构建定义,它将构建服务器上的测试构建到指定的Dropfolder中。这很好用。第二个构建定义使用LabDefaultTemplate.11来处理环境。在我指定的环境中,另一个构建定义是部署脚本,还有我的测试计划和相关的自动化测试 但如果我尝试启动构建部署测试工作流,我会得到两个结果。 首先,如果没有指定Deploment脚本,工作流将进入测试运行,工作流将变得无穷无尽(运行16小时),然后我中止了它。 第二步,我指定了部署脚本,现在似乎得到了相同的结果,但是在部署步骤上。我让它运行了将近20分钟,并在VM控制台上观看了我的代理。 我所看到的是,他有时会暂时断开连接,然后又重新上网 现在我在问,为什么这个构建工作流会变得无穷无尽 这些测试将是代码测试 这里是我停止的上一次运行的日志:Deployment 生成部署测试工作流未到达测试代理,deployment,tfs,build,automated-tests,Deployment,Tfs,Build,Automated Tests,起初,我对使用TFS的自动化测试还不熟悉,所以我尝试了很多实际的东西,但都有试错。 但我希望你能给我一些想法,我可能做错了什么 我已经在Microsoft测试管理器中设置了一个环境,如MSDN的几个博客中所述。比如说 我的基础结构如下:构建服务器和测试控制器在同一台机器上(Win2012),但我的测试代理(Win2008R2)是另一台机器。一切都是TFS 2013或VS 2013更新3 我有一个构建定义,它将构建服务器上的测试构建到指定的Dropfolder中。这很好用。第二个构建定义使用Lab
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)
我在Internet上找到的部署脚本,但我认为这可以工作
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)
在测试控制器的事件日志中,在生成运行时重复出现一些错误:
服务控制经理:
Visual Studio测试控制器服务意外终止。信息技术
已完成此操作1次。将采取以下纠正措施
在0毫秒内完成:重新启动服务
.Net运行时:
应用程序:QTController.exe框架版本:v4.0.30319
描述:由于未处理的异常,进程已终止。
异常信息:System.NullReferenceException堆栈:位于
Microsoft.TeamFoundation.TestManagement.Controller.BuildDropDownloadManager.GetLocalSharePath(System.String)
在
Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.IsUsingServerDrop(Microsoft.VisualStudio.TestTools.Execution.DeploymentTask)
在
Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.ProvisionBuildSharePermission(Microsoft.VisualStudio.TestTools.Execution.DeploymentTask)
在
Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.ProcessNewDeploymentTasks()
在
Microsoft.VisualStudio.QualityTools.Controller.DeploymentTaskMonitor.Poll(System.Object)
在System.Threading.ThreadHelper.ThreadStart_上下文(System.Object)在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object,布尔值)位于 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object,布尔值)位于 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback,System.Object)位于 System.Threading.ThreadHelper.ThreadStart(System.Object) 我尝试了这个解决方案,但我没有帮助和相关的链接,我没有“Web访问”文件夹来清除缓存。
我真的坚持那个问题。任何帮助都将不胜感激。visual studio上的生成报告日志并没有那么好。你查过tfs网站上的日志了吗?(生成失败报告->诊断->查看日志或在网站上的“生成->定义->诊断”下) 是否已设置部署脚本的超时?16小时是很长的时间。 还可以将部署代码链接到脚本。您是否有在代理上运行的其他测试?您是否检查了登录/密码并停用了代理上的登录屏幕,因为tfs在访问此屏幕时遇到问题。好的,我发现了问题。 问题是在Buildserver上安装的Visual Studio和MTM已损坏,其中还安装了TestController 如果你偶然发现这个问题,试试下面的方法。 -是否所有组件都在同一版本上(在我的案例2013 Update 3中)同时检查代理和控制器(在其配置对话框中,您可以找到“关于”按钮) -在服务器上打开MTM,并检查它是否可以在项目的不同测试计划之间切换(如果出现错误,这就是为什么控制器无法将案例交付给代理的原因。) 如果与我的情况类似,请尝试卸载并重新安装Visual Studio和MTM
我的命令是先卸载MTM,然后卸载VS,然后安装VS,然后卸载MTM,最后卸载实际更新。谢谢您的回答。我查看了tfs网站上的日志,如果点击查看日志,则其详细信息与构建报告页面上的内容几乎相同。我还检查了失败步骤(运行部署任务)和父步骤(运行部署脚本)中的输入。是的,我已经为部署设置了超时,但16小时是在我添加部署脚本之前,因为我第一次尝试时没有设置。附带问题,我是否总是需要部署脚本?在我进入这家公司的情况下,没有运行的测试,现在我尝试让它工作,所以现在没有测试工作。很抱歉Doublepost,但我不能再编辑我的评论了。是的,代理配置为自动登录并确保禁用屏幕保护程序。不,您不需要部署脚本。(使用sna时可能有用