В настоящее время мы используем Microsoft.VisualStudio.TestTools.CppUnitTestFramework , который определяет тестовые классы с помощью макроса, например:
TEST_CLASS(Class1)
{
public:
TEST_METHOD(Method1)
{
Logger::WriteMessage("In Method1");
Assert::AreEqual(0, 0);
}
};
Мне трудно заставить clang-формат «понять», что TEST_CLASS является определением структуры / класса. После нескольких попыток наилучшее решение, которое я получил на данный момент, состоит в том, чтобы определить два новых макроса для переноса класса:
#define START_TEST(className) TEST_CLASS(className){
#define END_TEST };
и определите их как начало / конец блока:
MacroBlockBegin: ^START_TEST.*$
MacroBlockEnd: ^END_TEST.*$
Мне интересно, есть ли лучшее решение, которое не предполагает добавления большего количества макросов ...