浏览代码

Hack XCode to behave properly for reporting GMock errors.

Sam Jaffe 5 年之前
父节点
当前提交
dd969e61cd
共有 2 个文件被更改,包括 14 次插入1 次删除
  1. 6 0
      string-utils.xcodeproj/project.pbxproj
  2. 8 1
      test/tokenizer_test.cxx

+ 6 - 0
string-utils.xcodeproj/project.pbxproj

@@ -442,6 +442,11 @@
 			buildSettings = {
 				CODE_SIGN_STYLE = Automatic;
 				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					XCODE_UNIT_TEST,
+					"DEBUG=1",
+					"$(inherited)",
+				);
 				INFOPLIST_FILE = "string_utils-test/Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
@@ -458,6 +463,7 @@
 			buildSettings = {
 				CODE_SIGN_STYLE = Automatic;
 				COMBINE_HIDPI_IMAGES = YES;
+				GCC_PREPROCESSOR_DEFINITIONS = XCODE_UNIT_TEST;
 				INFOPLIST_FILE = "string_utils-test/Info.plist";
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",

+ 8 - 1
test/tokenizer_test.cxx

@@ -13,8 +13,15 @@
 
 using namespace string_utils;
 
+#if XCODE_UNIT_TEST
+// This is a hack to allow XCode to properly display failures when running
+// unit tests.
+#undef EXPECT_THAT
+#define EXPECT_THAT ASSERT_THAT
+#endif
+
 TEST(TokenizerTest, SplitsStringOverToken) {
   std::string const input = "A.B.C.D";
   std::vector<std::string> const expected{"A", "B", "C", "D"};
-  ASSERT_THAT(split(input, "."), expected);
+  EXPECT_THAT(split(input, "."), expected);
 }