!REDIRECT “https://docs.px4.io/master/ko/test_and_ci/integration_testing_mavsdk.html“
MAVSDK 통합 시험
PX4는 MAVSDK를 기반으로 종단간 통합 시험을 진행할 수 있습니다.
시험 절차는 이제부터 근본적으로 SITL을 대상으로 개발하며, 지속 통합 체계(CI)에서 실행합니다. 그러나, 실제 시험도 일반화할 수 있습니다.
MAVSDK C++ 라이브러리 설치
시스템 영역(예: /usr/lib
또는 /usr/local/lib
)에 MAVSDK C++ 라이브러리를 설치해야 시험을 진행할 수 있습니다.
바이너리를 그대로 설치하거나 소스코드를 컴파일하여 설치하십시오:
- MAVSDK > Installation > C++: 지원 플랫폼에 사전 빌드한 라이브러리를 설치(추천)
- MAVSDK > Contributing > Building from Source: C++ 소스 코드를 라이브러리로 빌드.
PX4 코드 준비
PX4 코드를 빌드하려면 다음 명령을 내리십시오:
DONT_RUN=1 make px4_sitl gazebo mavsdk_tests
모든 PX4 시험 절차 실행
To run all SITL tests as defined in sitl.json, do:
test/mavsdk_tests/mavsdk_test_runner.py test/mavsdk_tests/configs/sitl.json --speed-factor 10
모든 가능한 명령행 인자를 살펴보려면 다음 내용을 살펴보십시오:
test/mavsdk_tests/mavsdk_test_runner.py -h
usage: mavsdk_test_runner.py [-h] [--log-dir LOG_DIR] [--speed-factor SPEED_FACTOR] [--iterations ITERATIONS] [--abort-early] [--gui] [--model MODEL]
[--case CASE] [--debugger DEBUGGER] [--verbose]
config_file
positional arguments:
config_file JSON config file to use
optional arguments:
-h, --help show this help message and exit
--log-dir LOG_DIR Directory for log files
--speed-factor SPEED_FACTOR
how fast to run the simulation
--iterations ITERATIONS
how often to run all tests
--abort-early abort on first unsuccessful test
--gui display the visualization for a simulation
--model MODEL only run tests for one model
--case CASE only run tests for one case
--debugger DEBUGGER choice from valgrind, callgrind, gdb, lldb
--verbose enable more verbose output
구현상 참고
- The tests are invoked from the test runner script mavsdk_test_runner.py, which is written in Python. 이 실행 주체는
px4
를 SITL 시험 용도의 가제보와 마찬가지로 시작하며, 처리 과정의 기록을 수집합니다. - 시험 진행 주체는 C++ 라이브러리이며, 다음 특징이 있습니다.
- The main function to parse the arguments.
- An abstraction around MAVSDK called autopilot_tester.
- The actual tests using the abstraction around MAVSDK as e.g. test_multicopter_mission.cpp.
- 시험 코드에서는 catch2 단위 시험 프레임워크를 활용합니다. 이 프레임워크를 사용하고자 하는 동기는 다음과 같습니다:
활용 용어:
- “모델”: 선택한 가제보 모델, 예:
iris
- “테스트 케이스”: catch2용 조건 시험 코드 단위.