Модульное тестирование библиотеки boost :: python в python

Итак, у меня есть общая библиотека, созданная с помощью boost :: python (C ++).
Для функций C ++ внутри у меня есть юнит-тесты, которые проверяют, что они работают.
Теперь я хотел бы использовать юнит-тест, чтобы увидеть, правильно ли я реализовал интерфейс Python.
Для этого я подумал об использовании пакета python unittest,

Теперь моя папка настроена примерно так:

project
|
-- C++ source (library and boost::python stuff)
|
-- build (here the shared library is located)
|
-- Test (here I have the python classes that should test the interface)

Папка test содержит несколько подпапок, которые отражают структуру интерфейса python, и содержит множество небольших модулей python, тестирующих различные аспекты библиотеки.

Итак вопрос сейчас:

Как я import общая библиотека в тест?

То, что я пробовал до сих пор, было в моем test_main.py

import sys
sys.path.insert(0,'../build')

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

0

Решение

Что вы можете сделать, это запустить тесты, пока вы находитесь в корневом каталоге в вашем случае project, Ты можешь сделать python Test/test_name.py, Убедитесь, что ваша библиотека сборки имеет __init__.py файл

Единственное изменение в тесте — это то, что

from build import blah #blah is the component you testing
#test code here
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]