TFS工作流程 - 在自定义编辑器中显示测试套件

时间:2015-07-02 12:03:25

标签: tfs build-process tfsbuild tfs2013

[编辑] 您可以通过IServiceProvider获取当前的build-def。见answer。 的 [/编辑]

我正在尝试为我们的一个TFS Xaml构建工作流程添加自定义编辑器。 我开始关注Ewald Hofman的this excelent tutorial。 一切按预期工作,当我点击工作流参数的[...]按钮时,会显示凭据对话框。

我想做什么: 我想显示TFS团队项目中可用的可选择的测试套件列表/树。就像在默认实验室工作流程中一样:

enter image description here

显然,为了实现这一目标,我必须能够通过其.Net-API传递TFS(是否可以通过SOAP / REST进行通信?)。

但是当我开始改变示例以适应我的场景时,我天真地尝试使用IServiceProvider来获取IBuildService实例。

public override object EditValue(ITypeDescriptorContext context, ServiceProvider provider, object value)
{
            if (provider != null)
            {
                IWindowsFormsEditorService editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

                IBuildServer bs = (IBuildServer)provider.GetService(typeof(IBuildServer));
                ...

此方法不起作用,bs在此声明后为空。

然后我尝试连接到TestManagement,如下所示:

            var pr = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/DefaultCollection/ProjectName"));
            var TcmService = pr.GetService<ITestManagementService>();
            var t = TcmService.GetTeamProject("ProjectName");

但是当我点击工作流参数的编辑按钮时显示的HTTP 404错误失败了。网址是正确的,如果我在浏览器中打开页面,则会显示Team Webaccess页面。

enter image description here

TL; DR:

我希望能够在自定义worfklow参数编辑器中显示当前tfs的测试套件列表,但是我无法连接到TFS。

其他方法: This网站(以及其他一些网站)建议使用内置编辑器。是否可以使用实验室工作流程参数的内置编辑器窗口(第一个屏幕截图中的那个)?

提前致谢。

1 个答案:

答案 0 :(得分:0)

看起来我只是愚蠢。

var pr = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/DefaultCollection/ProjectName"));

项目名称不得位于此网址中。使用下面的行可以正常工作。

var pr = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs:8080/tfs/DefaultCollection"));

查看我的跟进question