首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HPQC C#创建测试计划测试

HPQC C#创建测试计划测试
EN

Stack Overflow用户
提问于 2012-08-11 05:32:58
回答 2查看 5.3K关注 0票数 0

在QC集成工具上工作,在测试计划中创建测试时遇到问题-不幸的是,该应用程序接口是为VB6编写的,而我正在C#中工作。

这是我到目前为止所得到的:

代码语言:javascript
复制
private void HPQC_Create_Test_Plan_Test(TDConnectionClass tdConnection, string ParentFolderPath, string TestName)
    {
        try
        {
            TreeManager treeM = (TreeManager)tdConnection.TreeManager;
            ISysTreeNode ParentFolder = (ISysTreeNode)treeM.get_NodeByPath(ParentFolderPath);
            TestFactory TestF = (TestFactory)tdConnection.TestFactory;

            Test TstTest = (Test)TestF.AddItem(System.DBNull.Value);
            TstTest.Name = TestName;
            TstTest.Type = "MANUAL";
            TstTest.Post();

            HPQC_Status_Test_Plan.Text = "Test " + TestName + " created.";

            tdConnection.Logout();
            tdConnection.Disconnect();
            tdConnection = null;

        }
        catch (Exception ex)
        {
            HPQC_Status_Test_Plan.Text = "Test Creation Failed.";
            Console.WriteLine("[Error] " + ex);

            tdConnection.Logout();
            tdConnection.Disconnect();
            tdConnection = null;

        }
    }

帖子上的代码错误只有一个简单的"Failed to Post“,我不知道为什么。

下面是用VB6编写的接口示例:

代码语言:javascript
复制
Public Sub AddTest(FolderName$, TestName$)

创建新测试。此示例假设包含新测试的subject文件夹直接位于根"Subject“文件夹下。

代码语言:javascript
复制
Dim objTest As Test
Dim folder As SubjectNode
Dim testF As TestFactory
Dim TreeMgr As TreeManager
Dim Path As String

Dim Trees As List
Dim RootName As String
Dim SubjRoot As SubjectNode

'tdc is the global TDConnection object.
Set TreeMgr = tdc.TreeManager

' Use TreeManager.TreeRoot to get the list of subject
' root nodes from the tree manager.
' There is only one item in this list.
Set Trees = TreeMgr.RootList(TDOLE_SUBJECT)

' Get the name of the subject tree root in your project.
RootName = Trees.Item(1)

Path = RootName & "\" & FolderName

On Error Resume Next
Set folder = TreeMgr.NodeByPath(Path)
On Error GoTo 0

If folder Is Nothing Then 'Create the folder
    ' Get the SubjectNode root node object from the
    ' tree manager by name.
    Set SubjRoot = TreeMgr.TreeRoot(RootName)
    Set folder = SubjRoot.AddNode(FolderName)
End If

Set testF = folder.TestFactory
Set objTest = testF.AddItem(Null)
objTest.name = TestName
objTest.Type = "SYSTEM-TEST"
objTest.Post

Dim VerCtl As VCS
Dim bIsLocked As Boolean
Dim strLockedBy As String

Set VerCtl = objTest.VCS

VerCtl.Refresh

bIsLocked = VerCtl.IsLocked
strLockedBy = VerCtl.LockedBy

' After POST, Test is checked in.
Debug.Print "Is locked: " & bIsLocked
'Is locked: False
Debug.Print "Is locked by: """ & strLockedBy & """"
'Is locked by: ""

VerCtl.CheckOut -1, "To change state", True

VerCtl.Refresh

bIsLocked = VerCtl.IsLocked
strLockedBy = VerCtl.LockedBy

Debug.Print "Is locked: " & bIsLocked
'Is locked: True
Debug.Print "Is locked by: """ & strLockedBy & """"
'Is locked by: "User1"

' Take an arbitrary field to change.
Debug.Print "Status: """ & objTest.Field("TS_STATUS") & """"
'Status: ""

objTest.Field("TS_STATUS") = "Ready"

objTest.Post

VerCtl.CheckIn "", "Changed status"

VerCtl.Refresh

bIsLocked = VerCtl.IsLocked
strLockedBy = VerCtl.LockedBy

Debug.Print "Is locked: " & bIsLocked
'Is locked: False
Debug.Print "Is locked by: """ & strLockedBy & """"
'Is locked by: ""

结束子对象

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 23:03:57

给了它一个周末的时间来考虑它,并意识到上面的代码在树中没有要链接到的父属性。不幸的是,由于某些原因,C#中的TreeManager没有TreeRoot可用。

通过手动抓取原型的路径来解决这个问题-用户必须在文本框中键入父路径,如"Root\Subject“。

关键属性是"TS_Subject“,它是您想要附加测试的文件夹的NodeID。

以下代码适用于我:

代码语言:javascript
复制
private void HPQC_Create_Test_Plan_Test(TDConnectionClass tdConnection, string ParentFolderPath, string TestName)
    {
        try
        {
            TreeManager treeM = (TreeManager)tdConnection.TreeManager;
            ISysTreeNode ParentFolder = (ISysTreeNode)treeM.get_NodeByPath(ParentFolderPath);
            TestFactory TestF = (TestFactory)tdConnection.TestFactory;

            Test TstTest = (Test)TestF.AddItem(System.DBNull.Value);
            TstTest.Name = TestName;
            TstTest.Type = "MANUAL";
            TstTest["TS_SUBJECT"] = ParentFolder.NodeID;
            TstTest.Post();

            HPQC_Status_Test_Plan.Text = "Test " + TestName + " created.";

            tdConnection.Logout();
            tdConnection.Disconnect();
            tdConnection = null;

        }
        catch (Exception ex)
        {
            HPQC_Status_Test_Plan.Text = "Test Creation Failed.";
            Console.WriteLine("[Error] " + ex);

            tdConnection.Logout();
            tdConnection.Disconnect();
            tdConnection = null;

        }
    }
票数 0
EN

Stack Overflow用户

发布于 2013-05-14 22:56:16

我有一些类似的东西,但更适合于生成文件夹结构。我们在QC中的根文件夹是"Subject“,但您可以简单地更改它,以便创建您想要的特定文件夹。此外,不需要设置"TS_SUBJECT“标题,因为我们使用叶节点上的节点将测试创建到指定的文件夹中。

代码语言:javascript
复制
private TestFactory addSubjectTreeStructure(String subjectField)
    {
        String folderRootString = subjectField;
        folderRootString = folderRootString.Replace("\\", "/");
        String[] folders = folderRootString.Split('/');

        // Test Plan Tree Manager
        TreeManager treeMgr = tdc.TreeManager;
        SubjectNode subjectNode = treeMgr.get_NodeByPath("Subject");

        ISysTreeNode node = (ISysTreeNode)subjectNode;

        // Creating the folders in test plan.
        for (int i = 0; i < folders.Length; i++)
        {
            try
            {
                node = node.FindChildNode(folders[i]);
            }
            catch (Exception ex)
            {
                node = node.AddNode(folders[i]);
                Console.WriteLine(ex.Message + ".\nChild not found. Adding new node: " + folders[i]);
            }
        }

        // Set the leaf folder and then returning the TestFactory from where all test cases will be generated from.
        SubjectNode folder = treeMgr.get_NodeById(node.NodeID);
        return folder.TestFactory;
    }

然后,通过使用返回的测试工厂,您可以在此文件夹中创建测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11909555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档