0

我正在尝试以编程方式调用 ALM 中的测试套件。当我执行代码时(当我的机器充当测试运行器时),我在本地机器上运行指定的测试套件没有问题。但是,当我尝试指向远程服务器来运行所述测试套件时,我遇到了一个问题。此处发布的代码和错误消息:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TDAPIOLELib;


        // Connect to ALM
        ITDConnection itdc = new TDConnection();
        itdc.InitConnectionEx(url);
        itdc.ConnectProjectEx(domain, projectName, username, pswd);

        if (itdc.ProjectConnected)
        {
            List<string> testInfo = new List<string>();

            string testFolder = "Root\\<Folder>\\<Folder>";
            testSetName = "<TestSuite>";

            TestSetFactory tsFactory = (TestSetFactory)itdc.TestSetFactory;
            TestSetTreeManager tsTreeMgr = (TestSetTreeManager)itdc.TestSetTreeManager;

            TestSetFolder tsFolder = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
            List tList = tsFolder.FindTestSets(testSetName, false, null);
            TestSet testset = tList[1];

            TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
            // scheduler.RunAllLocally = true; // Included when ran local
            scheduler.Run();                
        }

我在“调度程序”声明行收到的错误消息是“类未注册(来自 HRESULT 的异常:0x80040154(REGDB_E_CLASSNOTREG))”。

我已经在我的本地机器和我尝试执行的机器上注册了 OTAClient.dll。

任何建议,将不胜感激。

  • 下一步
    • 呼叫一位年轻和年长的牧师。
4

2 回答 2

2

我已经在使用

TSScheduler scheduler = testSet.StartExecution("");

我们在 QC10 中有一个可行的解决方案,但最近升级到了 QC12。安装连接位于

yourALMURL.com/qcbin/TDConnectivity_index.html

允许我们在 VS2013 / C# 中使用 COM 对象,连接到 QC 等,但会失败,并出现与上面代码相​​同的错误。

类未注册(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))

最终我们发现您还需要通过工具/客户端注册来“注册您的客户”:

https://yourALMURL.com/qcbin/CommonMode_index.html

以管理员身份运行 IE,并在该页面上安装组件。

我希望这可以帮助别人 :)

于 2014-11-06T12:17:01.060 回答
2

我弄清楚了问题所在。如果这个库上有更多可用的文档,那就太好了。

在开始执行之前,您需要设置一些 TSScheduler 属性。所以这一行:

TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
// scheduler.RunAllLocally = true; // Included when ran local
scheduler.Run(); 

变成了这样:

TSScheduler scheduler = testset.StartExecution(""); // Contain server name unless local
scheduler.TdHostName = "<test_runner_name>";
scheduler.LogEnabled = true;
scheduler.Run(testset.ID);

如果您确认您的计算机上安装了所有必要的 ALM 插件,这也是一个好主意。特别是“HP Quality Center Connectivity”和“HP Quality Center System Test Remote Agent”插件。为了确定,我重新安装了我的测试代理。

希望这对将来的其他人有所帮助。

于 2013-06-13T16:17:23.817 回答