У меня есть свой собственный небольшой кросс-платформенный фреймворк для модульного тестирования C ++, где юнит-тесты выглядят так:
#include "Test.h"
DEFINE_TEST(myTest) {
AssertEqual(2+2, 4);
}
и находятся в .cpp файлах.
(Похоже на то, как Ловить делает это, среди прочего я уверен)
Я хотел бы интегрировать это с XCode, чтобы я мог запустить свои тесты с помощью команды Run Tests XCode и использовать другие инструменты которые зависят от модульных тестов, выполняемых таким образом. В идеале я хотел бы, чтобы каждый из моих тестовых примеров был тестовым набором XCTest (хотя я могу вручную настроить его для каждого теста), и я хотел бы, чтобы мои утверждения (AssertEqual) вели себя как XCTest (XCTAssert).
Это возможно? Если так, как бы я это сделал?
(Примечание: не переключаться на использование XCtest, потому что я хотел бы, чтобы мои тесты также работали на Windows)
Интеграция с Xcode в основном означает обеспечение:
-[XCTestCase recordFailure:withDescription:inFile:atLine:expected:]
на текущий выполняющийся экземпляр класса теста.Xcode затем заполняет Test Navigator всеми обнаруженными во время выполнения тестами, организованными в соответствии с их классом тестовых примеров, после первого запуска теста.
Вы можете выполнить большую часть работы с макросами, чтобы препроцессор мог создавать классы и методы тестового примера во время компиляции. В противном случае вам придется пройтись и подключить все во время выполнения, прежде чем тестирующий выполнит опрос среды выполнения, чтобы обнаружить все XCTestCase
подклассы и методы их испытаний.