Какой правильной структуре кода следует следовать для получения наилучших результатов с помощью TestModules в Canoe?

Я использую CANoe 10.0 для проведения диагностического тестирования, и мне нужно создавать отчеты для тестов. Итак, я использую Test Setup для создания своих тестовых случаев с помощью CAPL. Я знаю, что тест начинается с функции "MainTest". После этого я не знаю, как структурировать свой тестовый пример и какие функции использовать, чтобы получить правильный формат в отчете. Например, я хочу отправить диагностический запрос и ожидаю конкретного ответа. Я хочу иметь возможность показать в отчете отправку сообщения, какой ответ был получен и какой ответ ожидался. На основании этого должен быть вынесен вердикт.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
770
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ниже вы можете найти простой пример. Дополнительные примеры и другие варианты использования вы можете найти в CANoe «Справка» и «Примеры конфигураций», предоставленные Vector. Перед первой попыткой не забудьте добавить файл CDD, который позволит вам импортировать службы диагностики в среду CANoe (я использовал пример Vector CDD) .

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!");
}

} 

Другие вопросы по теме