Unit тестирование mql: mql_unit_test
18 февраля 2021 г. 9:07
В mql4 и mql5 есть Тестер стратегий, но нет стандартной библиотеки для тестирования простых своих написанных функций. Такое тестирование ещё имеет название Модульное тестирование или unit-тестирование.
Для тестирования своих функций я написал библиотеку mql_unit_test, который доступен на гитхабе:
https://github.com/vivazzi/mql_unit_test
Установка mql_unit_test
Скачайте библиотеку и скопируйте папку mql_unit_test/Include/unit_test в <TERMINAL DIR>/MQL(4/5)/Include.
Использование
С помощью mql_unit_test вы можете простым способом тестировать ваши функции, а результаты тестов получать в текстовом файле, например:
#include <unit_test/unit_test.mqh>
double min(double v_1, double v_2) {
if (v_1 > v_2) return v_2;
return v_1;
}
class MyTest: public TestCase {
void test_my_function_min() {
assert_equal(min(4, 10), 4);
assert_equal(min(8, 1), 1);
assert_equal(min(5, 0), 5); // test fails
}
void declare_tests() {
test_my_function_min();
}
};
int OnInit(){
MyTest my_test;
my_test.run();
return(INIT_SUCCEEDED);
}
Затем откопилируйте данный код и запустите этот Эксперт / Скрипт в торговом окне: программа выполнит ваши юнит тесты. Результаты тестов вы можете увидеть в папке <TERMINAL DIR>/MQL(4/5)/Include Для теста выше результат будет следующим:
--- 2021.02.18 15:53: Unit Test: passed tests 2 from 3 (elapsed time: 0 sec) --- TestUnitTest.mq4(30), MyTest::test_my_function_min(): 0 != 5
В логе вы можете видеть, на какой строчке в какой функции тест провалился.
В README.md пакета на гитхабе вы можете найти более полную и актуальную документацию mql_unit_test:
https://github.com/vivazzi/mql_unit_test
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0