В Gradle, как вы НЕ включаете реализацию в модульный тест, который требуется в сборке приложения для C ++? - PullRequest
0 голосов
/ 20 апреля 2020

Мы унаследовали большую кодовую базу, которая имеет функции c и синглтоны, разбросанные по всему коду. Это делает модульное тестирование очень сложным. Ответ, как правило, рефакторинг базы кода, однако мы не можем сделать это в настоящее время . Мы используем google-test, и у нас есть google-mock, но он бесполезен для static / singletons.

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

Мы используем плагины.

plugins {
   `cpp-application`
   `cpp-unit-test`
}

cpp -unit-test прекрасно работает, но он вытягивает все зависимости из раздела приложения.

application {
   targetMachines.add(machines.linux.x86_64)
   dependencies {
      ...
      implementation(project(":ProblemProject")
      ...
   }
}

Любые идеи о том, как не включать «ProblemProject» в модульный тест построить, но все же еще есть для сборки приложения? В нашем файле build.gradle.kts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...