Каковы Ваша любимая/рекомендовать структура проекта и файловая структура для Поблочного тестирования с помощью Повышения?

Я не использовал Поблочное тестирование до сих пор, и я намереваюсь принять эту процедуру. Я был впечатлен TDD, и конечно хотят дать ему попытку - я почти уверен, что это - способ пойти.

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

7
задан sevaxx 3 June 2010 в 12:27
поделиться

2 ответа

Наша структура тестирования на основе Boost выглядит следующим образом:

ProjectRoot/
  Library1/
    lib1.vcproj
    lib1.cpp
    classX.cpp
    ...
  Library2/
    lib2.vcproj
    lib2.cpp
    toolB.cpp
    classY.cpp
    ...
  MainExecutable/
    main.cpp
    toolA.cpp
    toolB.cpp
    classZ.cpp
    ...
  Tests/
    unittests.sln
    ut_lib1/
      ut_lib1.vcproj (referencing the lib1 project)
      ut_lib1.cpp (with BOOST_AUTO_TEST_CASE) - testing public interface of lib1
      ut_classX.cpp - testing of a class or other entity might be split 
                      into a separate test file for size reasons or if the entity
                      is not part of the public interface of the library
      ...
    ut_lib2/
      ut_lib2.vcproj (referencing the lib2 project)
      ut_lib2.cpp (with BOOST_AUTO_TEST_CASE) - testing public interface of lib2
      ...
    ut_toolA/
      ut_toolA.vcproj (referencing the toolA.cpp file)
      ut_toolA.cpp - testing functions of toolA
    ut_toolB/
      ut_toolB.vcproj (referencing the toolB.cpp file)
      ut_toolB.cpp - testing functions of toolB
    ut_main/
      ut_main.vcproj (referencing all required cpp files from the main project)
      ut_classZ.cpp - testing classZ
      ...

Эта структура была выбрана для устаревшего проекта, где нам нужно было решить в каждом конкретном случае, какие тесты добавить и как сгруппировать тест-проекты для существующих модулей исходного кода.

Примечание:

  • Код модульного тестирования всегда компилируется отдельно от производственного кода.
  • Производственные проекты не ссылаются на код модульного тестирования.
  • Проекты модульного тестирования включают непосредственно исходные файлы или только справочные библиотеки, в зависимости от того, что имеет смысл с учетом использования определенного файла кода.
  • Запуск модульных тестов выполняется на этапе после сборки в каждом файле ut_*.vcproj.
  • Все наши производственные сборки также автоматически запускают модульные тесты. (В наших сценариях сборки.)

В нашем реальном (C++) мире вам приходится идти на компромиссы между прочим. унаследованные проблемы, удобство для разработчиков, время компиляции и т. д. Я думаю, что структура нашего проекта — хороший компромисс. :-)

2
ответ дан 7 December 2019 в 18:40
поделиться

Я поместил свой основной код в .libs или .dll, а затем мои проекты тестирования Boost зависели от этих проектов lib / dll. Так что я могу получить:

ProjectRoot
  Lib1Source
    Lib1Tests
  Lib2Source
    Lib2Tests

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

0
ответ дан 7 December 2019 в 18:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: