Я использую MATLAB xUnit для проверки некоторого кода.Я хотел бы иметь возможность напрямую вызывать некоторые функции, которые содержатся в каталоге private
.
Вот простая реплицируемая установка: создайте себе каталог проекта с двумя папками code
и test
.В code
создайте подкаталог с именем private
, чтобы дерево каталогов выглядело как
project_root
code
private
test
В каталоге code
поместите функцию
function y = main()
y = sub();
end
В private
dir поместите функцию
function y = sub()
y = 123;
end
В test
dir поместите функцию
function testsub()
assertElementsAlmostEqual(sub(), 123);
end
Теперь перейдите к тестовой директории и вызовите runtests
.Вы должны увидеть сообщение о том, что sub
не определено.
private
Каталоги не разрешены в пути Matlab, поэтому это не вариант.Я мог бы поместить в каталог code
функцию, которая извлекает дескрипторы для всех приватных функций, но это выглядит странно.
Каков наилучший способ получить доступ для проверки приватных функций?
РЕДАКТИРОВАТЬ:
Идея перехода в личный каталог имеет проблему.Теоретически я мог бы позвонить, например,
cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run
К сожалению, структура тестирования переходит в каталог, содержащий тесты, как только вы вызываете run
.