Мне нравятся другие ответы, но я также хотел бы оставить отзыв о том, как мы это делаем в компании, в которой я сейчас работаю:
Создайте проект subdirs
(это будет проект верхнего уровня, который будет управлять ВСЕМИ, включая ваш библиотечный проект или все, что вы хотите протестировать)
+-----MyProject (top-level subdirs)
Добавьте свои библиотечные проекты в качестве подпроекта
+-----MyProject (top-level subdirs)
|
+-----Library (library project, UI project etc.)
Добавьте еще subdirs
проектов (для тестов)
+-----MyProject (top-level subdirs)
|
+-----Library (library project, UI project etc.)
|
+-----Tests (subdirs for tests)
Создайте проект QUnitTest
и добавьте его в проект subdirs
тестирования.
+-----MyProject (subdirs)
|
+-----Library (library project, UI project etc.)
|
+-----Tests (subdirs for tests)
|
+----- TestA (QUnitTest project for testing feature A)
Добавьте столько тестов, сколько считаете нужным
...
|
+-----Tests (subdirs for test)
|
+----- TestA (QUnitTest project for testing feature A)
|
+----- TestB (QUnitTest project for testing feature B)
|
+----- TestC (QUnitTest project for testing feature C)
|
...
|
+----- TestZ (QUnitTest project for testing feature Z)
Если вам нужно сгруппировать тесты в группы, вы также можете использовать subdirs
для этого. subdirs
также обеспечивает создание настоящих каталогов в вашей файловой системе. Если вы хотите избежать слишком много subdirs
ing, вы можете сгруппировать тесты в папках, которые вы создали самостоятельно в своей файловой системе внутри папки проекта Tests
.
Кроме того, я бы также рекомендовал добавить subdirs
для проектов-шаблонов.
+-----MyProject (subdirs)
|
+-----Library (library project, UI project etc.)
|
+-----Tests (subdirs for tests)
| |
| ...
|
+-----Templates (subdirs for template projects
|
+----- TemplateA (template project for feature A)
|
+----- TemplateB (template project for feature B)
|
+----- TemplateAB (template project for feature A and B together)
|
...
|
+----- TemplateZ (template project for feature Z)
Это, конечно, основано на функциональности вашей библиотеки. Под шаблонными проектами я подразумеваю пользовательские виджеты и т. д., которые ссылаются на вашу библиотеку и раскрывают выборочно (или все) ее функциональные возможности так, как они должны отображаться для пользователя. Например, если у вас есть библиотека, которая управляет различными устройствами камеры, вы можете создать проект шаблона для каждого устройства камеры, что позволит пользователям вашей библиотеки просто скопировать и вставить конкретный проект шаблона и расширить его или, по крайней мере, посмотреть, как интеграция ваша библиотека должна произойти в целом. Это позволяет сократить документацию и в то же время дать хорошие самостоятельные примеры, которые должны сократить время разработки, которое в противном случае тратится на выяснение того, как работает интеграция и использование библиотеки (можно сказать, что это своего рода набор Hello World проекты :)). И последнее, но не менее важное: вы можете наметить решения для различных вариантов использования.
person
rbaleksandar
schedule
02.11.2016