Мы унаследовали большую кодовую базу, которая имеет функции 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.