Можно ли интегрировать модульное тестирование C ++ в XCTest XCode?

У меня есть свой собственный небольшой кросс-платформенный фреймворк для модульного тестирования C ++, где юнит-тесты выглядят так:

#include "Test.h"
DEFINE_TEST(myTest) {
AssertEqual(2+2, 4);
}

и находятся в .cpp файлах.

(Похоже на то, как Ловить делает это, среди прочего я уверен)

Я хотел бы интегрировать это с XCode, чтобы я мог запустить свои тесты с помощью команды Run Tests XCode и использовать другие инструменты которые зависят от модульных тестов, выполняемых таким образом. В идеале я хотел бы, чтобы каждый из моих тестовых примеров был тестовым набором XCTest (хотя я могу вручную настроить его для каждого теста), и я хотел бы, чтобы мои утверждения (AssertEqual) вели себя как XCTest (XCTAssert).

Это возможно? Если так, как бы я это сделал?

(Примечание: не переключаться на использование XCtest, потому что я хотел бы, чтобы мои тесты также работали на Windows)

3

Решение

Интеграция с Xcode в основном означает обеспечение:

  • Каждый из этих тестов заканчивается как метод тестирования в классе тестовых случаев.
  • Каждое ошибочное утверждение отправляет -[XCTestCase recordFailure:withDescription:inFile:atLine:expected:] на текущий выполняющийся экземпляр класса теста.

Xcode затем заполняет Test Navigator всеми обнаруженными во время выполнения тестами, организованными в соответствии с их классом тестовых примеров, после первого запуска теста.

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

1

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


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