1

我想使用 VersionOne .Net SDK 创建一个以回归测试作为父级的新测试。这段代码Violation'Required'AttributeDefinition'Parent'Test: NULL就行了_services.Save(newAsset)

这是我正在使用的代码:

var parentAssetType = "RegressionTest";
var typeOfAsset = "Test"; 
var assetTitle = "My New Test";

public Asset AddNewAsset(string parentAssetType, string typeOfAsset, string assetTitle)
    {
        var projectId = Oid.FromToken(parentAssetType + ":0", _metaModel);
        Console.WriteLine(projectId.Token);
        var assetType = _metaModel.GetAssetType(typeOfAsset);
        var newAsset = _services.New(assetType, projectId);
        var nameAttribute = assetType.GetAttributeDefinition("Name");
        newAsset.SetAttributeValue(nameAttribute, assetTitle);
        _services.Save(newAsset);

        var newAssetId = newAsset.Oid.Token;
        var parentAssetId = newAsset.GetAttribute(assetType.GetAttributeDefinition(parentAssetType)).Value;
        var newAssetName = newAsset.GetAttribute(nameAttribute).Value;
        _logger.Log(Loglevel.Debug, "New Asset Id:{0} --- Parent Asset Id:{1} --- New Asset Name:{2}", newAssetId, parentAssetId, newAssetName);
        Console.WriteLine("New Asset Id:{0} --- Parent Asset Id:{1} --- New Asset Name:{2}", newAssetId, parentAssetId, newAssetName);

        return newAsset;
    }

我密切关注此处找到的示例:https ://github.com/versionone/VersionOne.SDK.NET.APIClient#learn-by-example-new-asset

在示例之前的段落中,作者解释了“当您在 APIClient 中创建新资产时,您需要指定将成为父级的另一个资产的“上下文”。例如,如果您创建一个新的 Story 资产,您可以指定它应该在哪个范围内创建”。

在示例parentAssetType中设置为"Scope:0"。但是,我认为它应该是现有资产的特定 ID。我使用真实的现有范围编号尝试了此代码,并引发了相同的错误,这使我相信我错过了真正的问题。

4

2 回答 2

2

从测试的详细信息页面(在故事或缺陷下创建),在“编辑”下拉菜单下是该工作项的“生成回归测试”选项。

此外,在“产品计划”选项卡下是“回归测试”页面的链接。在这里,您可以创建与您正在处理的项目或子项目相关联的新回归测试,以及显示从工作项生成的回归测试。

创建回归测试后,您可以转到“发布计划”选项卡 >,然后转到“回归计划”页面。在这里,您创建回归计划>新测试套件>,然后回归测试分配给创建的套件。

*注意:直接为故事或缺陷创建的测试将不会显示以供选择分配给测试套件,只会显示通过从回归测试页面或工作项的测试详细信息页面创建的回归测试。

将测试添加到套件后,可以生成测试集以包含可执行的验收测试以及分配给套件的回归测试。

** 注意 ** **回归测试或测试不能是父测试或子测试。

我希望这有帮助。

于 2014-05-27T21:36:41.520 回答
1

您必须使用 PrimaryWorkitem (Story, Defect) 作为父项来创建测试。RegressionTests 不包含“测试”。有一个例外,因为 RegressionTest 可以在名为“GeneratedFrom”的属性中保存对测试的引用。这可以指生成 RegressionTest 的测试。

于 2014-05-27T19:35:37.130 回答