我想使用 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。我使用真实的现有范围编号尝试了此代码,并引发了相同的错误,这使我相信我错过了真正的问题。