我正在使用 Rally Soap API 针对之前创建的测试用例创建一个新的
TestCaseResult
,但在创建结果时出现错误:
“验证错误:TestCaseResult.Date 不应为空”
不确定为什么会出现这种情况 - 你能帮忙吗?
private Boolean createTestResultForTest(String aResult, String aTestCase)
{
TestCaseResult myTestCaseResult = new TestCaseResult();
myTestCaseResult.Build = "1";
DateTime myDate = DateTime.Now;
myTestCaseResult.Date = myDate;
String myQuery = "(FormattedID = " + aTestCase + ")";
QueryResult myTestCaseReturn = m_rallyService.query(m_workspace, "TestCase", myQuery, "", true, 0, 100);
long mycount = myTestCaseReturn.TotalResultCount;
if (mycount > 0)
{
TestCase myTestCase = (TestCase)myTestCaseReturn.Results[0];
myTestCaseResult.TestCase = myTestCase;
}
else
{
return false;
}
myTestCaseResult.Verdict = aResult;
CreateResult myCreateTestResultResult = m_rallyService.create(myTestCaseResult);
if (hasErrors(myCreateTestResultResult))
{
updateStatus("Could not create test result for test case:" + myTestCaseResult.TestCase.Name);
printWarningsErrors(myCreateTestResultResult);
return false;
}
else
{
myTestCaseResult = (TestCaseResult)myCreateTestResultResult.Object;
myTestCaseResult = (TestCaseResult)m_rallyService.read(myTestCaseResult);
updateStatus("Created TestCaseResult: " + myTestCaseResult.TestCase.Name + ", ref = " + myTestCaseResult.@ref);
}
return true;
}
我相信您已经遇到了 Rally 的 SOAP API 的一个已知错误,直到现在我才忘记它。基本上,错误在于,即使您在 TestCaseResult 上指定了有效的日期/时间对象,SOAP 序列化程序也无法识别这一点,除非您还将特定标志设置为 true,即:
myTestCaseResult.DateSpecified = true;
请设置此标志,然后重新运行您的代码 - 它现在应该可以工作了:)