Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 生成部署测试工作流未到达测试代理_Deployment_Tfs_Build_Automated Tests - Fatal编程技术网

Deployment 生成部署测试工作流未到达测试代理

Deployment 生成部署测试工作流未到达测试代理,deployment,tfs,build,automated-tests,Deployment,Tfs,Build,Automated Tests,起初,我对使用TFS的自动化测试还不熟悉,所以我尝试了很多实际的东西,但都有试错。 但我希望你能给我一些想法,我可能做错了什么 我已经在Microsoft测试管理器中设置了一个环境,如MSDN的几个博客中所述。比如说 我的基础结构如下:构建服务器和测试控制器在同一台机器上(Win2012),但我的测试代理(Win2008R2)是另一台机器。一切都是TFS 2013或VS 2013更新3 我有一个构建定义,它将构建服务器上的测试构建到指定的Dropfolder中。这很好用。第二个构建定义使用Lab

起初,我对使用TFS的自动化测试还不熟悉,所以我尝试了很多实际的东西,但都有试错。 但我希望你能给我一些想法,我可能做错了什么

我已经在Microsoft测试管理器中设置了一个环境,如MSDN的几个博客中所述。比如说

我的基础结构如下:构建服务器和测试控制器在同一台机器上(Win2012),但我的测试代理(Win2008R2)是另一台机器。一切都是TFS 2013或VS 2013更新3

我有一个构建定义,它将构建服务器上的测试构建到指定的Dropfolder中。这很好用。第二个构建定义使用LabDefaultTemplate.11来处理环境。在我指定的环境中,另一个构建定义是部署脚本,还有我的测试计划和相关的自动化测试

但如果我尝试启动构建部署测试工作流,我会得到两个结果。 首先,如果没有指定Deploment脚本,工作流将进入测试运行,工作流将变得无穷无尽(运行16小时),然后我中止了它。 第二步,我指定了部署脚本,现在似乎得到了相同的结果,但是在部署步骤上。我让它运行了将近20分钟,并在VM控制台上观看了我的代理。 我所看到的是,他有时会暂时断开连接,然后又重新上网

现在我在问,为什么这个构建工作流会变得无穷无尽

这些测试将是代码测试

这里是我停止的上一次运行的日志:

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时可能有用