首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >要在独木舟中使用TestModules获得最佳输出,应遵循哪种正确的代码结构?

要在独木舟中使用TestModules获得最佳输出,应遵循哪种正确的代码结构?
EN

Stack Overflow用户
提问于 2019-05-30 14:13:10
回答 1查看 687关注 0票数 0

我正在使用CANoe 10.0进行一些诊断测试,并且我必须为测试生成报告。因此,我使用测试设置来创建使用CAPL的测试用例。我知道测试是从函数"MainTest“开始的。在此之后,我不知道如何组织我的测试用例,以及使用哪些函数来获得报告中的正确格式。例如,我想发送一个诊断请求,并期望得到一个特定的响应。我希望能够在报告中显示消息的发送、收到的响应以及预期的响应。在此基础上,应该显示裁决。

EN

Stack Overflow用户

回答已采纳

发布于 2019-05-31 20:15:27

下面你可以找到简单的例子。在Vector.Before提供的CANoe 'Help‘和"Sample Configurations“中可以找到更多示例和其他用例请记住添加CDD文件,该文件将允许您将诊断服务导入到CANoe环境(我使用了示例矢量CDD)。

代码语言:javascript
运行
复制
void MainTest()
{
TestModuleTitle ("ECU DIAGNOSTICS TEST");
TestModuleDescription ("Basic Diagnostics Test");

TestGroupBegin("ECU Extended session", "ReadPartNubmers");
ExtendedDiagnosticSession_Start();
//testcase 
//testcase 
//...
//testcase n
TestGroupEnd();

TestGroupBegin("ECU Identification", "ReadPartNubmers");
ReadSerialPartNumber();
//testcase eg  ReadSerialPartNumber()... 
//testcase 
//...
//testcase 
TestGroupEnd();  
}

testcase  ReadSerialPartNumber()
{
diagRequest ABS_ESP.Serial_Number_Read req; //Service from CDD

TestCaseTitle("TEST 1 ReadPartNumber", "Read Serial Part Number");

diagSendRequest(req);

if (TestWaitForDiagResponse(req, 2000)== 1)
{
  testReportWriteDiagResponse(req);

  if(DiagGetLastResponseCode(req) == -1) // Positive response
  {
    byte DataBuffer[50];

    diagGetRespParameterRaw(req,"SerialNumber",DataBuffer,20);// get data from response

      if(DataBuffer[0] == 0xAA)//dummy response verification
      {
         TestStepPass("Serial Number is correct");
      }
      else
      {
         TestStepFail("Wrong Part number ");
      }
  }
  else if(DiagGetLastResponseCode(req) > 0)//Negative response 
  {
    TestStepFail("Negative response received");
  }

}
else
{
  TestStepFail("No answer from ECU!");
}
}

testcase ExtendedDiagnosticSession_Start()
{
  diagRequest ABS_ESP.ExtendedDiagnosticSession_Start req; //Service from CDD, 

 TestCaseTitle("Test no 1", "Set Extended session");

diagSendRequest(req);

if (TestWaitForDiagResponse(req, 2000)== 1)
{
  testReportWriteDiagResponse(req);

  if(DiagGetLastResponseCode(req) == -1) // Positive response
  {

   TestStepPass("Positive");

  }
  else if(DiagGetLastResponseCode(req) > 0)//Negative response 
  {

    TestStepFail("ExtendedDiagnosticSession","Negative response received");
  }

}
else
{
  TestStepFail("ExtendedDiagnosticSession","No answer from ECU!");
}

} 
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56372616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档