Я хочу создать новый тест с регрессионным тестом в качестве родителя с помощью пакета VersionOne.Net SDK. Этот код вызывает Violation'Required'AttributeDefinition'Parent'Test: NULL
" _services.Save(newAsset)
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"
. Однако я думаю, что это должен быть конкретный идентификатор уже существующего актива. Я пробовал этот код с реальным существующим номером области, и эта же ошибка была брошена, что заставило меня поверить, что мне не хватает реальной проблемы.
На странице сведений о тестах (созданной в разделе "История или дефект") в раскрывающемся списке "Изменить" есть опция "Создать тест регрессии" для этого рабочего элемента.
Кроме того, на вкладке "Планирование продукта" есть ссылка на страницу " Тесты регрессии ". Здесь вы можете создавать новые тесты регрессии, которые связаны с проектом или подпроектами, в которых вы работаете, а также отображать Тест регрессии, сгенерированный из рабочего элемента.
После того, как вы создали тесты регрессии, вы можете перейти на вкладку "Планирование выпуска" > и затем перейти на страницу "Планирование регрессии". Здесь вы создаете Регрессионный план> Новый тестовый набор>, а затем присвойте регрессионные тесты созданному набору.
* Примечание. Тесты, созданные непосредственно для Истории или Дефекта, не будут отображаться для выбора, чтобы назначить Test Suite, только тесты регрессии, созданные с помощью страницы регрессионных тестов или на странице сведений о результатах работы.
После того, как тесты были добавлены в набор, тестовые наборы могут быть сгенерированы с учетом исполняемых приемочных тестов, а также тестов регрессии, назначенных для пакета.
** ПРИМЕЧАНИЕ ** ** Регрессионные тесты или тесты не могут быть родительским тестом или детским тестом.
Надеюсь, это поможет.
Вам нужно будет создать свой тест с помощью PrimaryWorkitem (Story, Defect) в качестве родителя. Регрессионные тесты не содержат "Тесты". Существует одно исключение, так как RegressionTest может содержать ссылку на тест в атрибуте "GeneratedFrom". Это может относиться к тесту, из которого был создан регрессионный тест.