Как тестировать функции в частном каталоге?

Я использую MATLAB xUnit для тестирования некоторого кода. Я хотел бы иметь возможность напрямую вызывать некоторые функции, содержащиеся в частном каталоге .

Вот простая воспроизводимая установка: Создайте себе каталог проекта с двумя папками code и test . В коде создайте подкаталог с именем private , чтобы дерево каталогов выглядело как

project_root
  code
    private
  test

В каталоге код поместите функцию

function y = main()
y = sub();
end

в private каталог разместить функцию

function y = sub()
y = 123;
end

В каталоге test разместить функцию

function testsub()
assertElementsAlmostEqual(sub(), 123);
end

Теперь перейдите в каталог test и вызовите runtests . Вы должны увидеть сообщение об ошибке sub не определено.

закрытые каталоги не разрешены на пути к Matlab, так что это не вариант. Я мог бы поместить функцию в каталог code , которая извлекает дескрипторы для всех частных функций, но это кажется хакерским.

Как лучше всего получить доступ для тестирования закрытых функций?

РЕДАКТИРОВАТЬ:

Идея перехода в личный каталог имеет проблему. Теоретически я мог бы вызвать, например,

cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run

. К сожалению, среда тестирования переходит в каталог, содержащий тесты, как только вы вызываете run .

8
задан Richie Cotton 21 December 2010 в 16:10
поделиться