2014-05-21 27 views
1

我想使用VersionOne .Net SDK创建一个新测试,并将回归测试作为父项进行测试。此代码抛出就行_services.Save(newAsset)如何使用VersionOne .Net SDK通过父回归测试创建新的验收测试

Violation'Required'AttributeDefinition'Parent'Test: NULL这是我使用的代码:

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; 
    } 

我密切关注exampele这里找到:https://github.com/versionone/VersionOne.SDK.NET.APIClient#learn-by-example-new-asset

在这个例子之前的段落,作者“当您在APIClient中创建新资产时,您需要指定另一个将作为父资产的资产的”上下文“,例如,如果您创建新的”资产“资产,您可以指定应在其中创建哪个范围”。

在该示例中,parentAssetType设置为"Scope:0"。但是,我认为它应该是已有资产的特定ID。我用一个真实的现有示波器编号尝试了这段代码,并抛出了同样的错误,这导致我相信我错过了真正的问题。

回答

2

从测试的详细信息页面(在故事或缺陷下创建)下,在“编辑”下拉列表中可以选择“生成回归测试”作为该工作项目。

此外,根据“产品规划”标签是对一个链接“回归测试”页面。在这里,您可以创建与您正在使用的项目或子项目关联的新回归测试,并显示从工作项生成的回归测试。

一旦你创建了回归测试,你可以去“发布计划”标签>然后到“回归计划”页。在此创建回归计划>新测试套件>然后分配到创建的套件的回归测试。

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

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

**备注** **回归测试或测试不能成为家长测试或儿童测试。

我希望这会有所帮助。

1

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