|
hai 3 semanas | |
---|---|---|
.. | ||
client | hai 3 semanas | |
cocoapods | hai 3 semanas | |
codegen | hai 3 semanas | |
common | hai 3 semanas | |
end2end | hai 3 semanas | |
ext | hai 3 semanas | |
grpclb | hai 3 semanas | |
interop | hai 3 semanas | |
ios | hai 3 semanas | |
microbenchmarks | hai 3 semanas | |
naming | hai 3 semanas | |
performance | hai 3 semanas | |
qps | hai 3 semanas | |
security | hai 3 semanas | |
server | hai 3 semanas | |
test | hai 3 semanas | |
thread_manager | hai 3 semanas | |
util | hai 3 semanas | |
README-iOS.md | hai 3 semanas |
GTMGoogleTestRunner is used to convert googletest cases to XCTest that can be run on iOS. GTMGoogleTestRunner doesn't execute the main
function, so we can't have any test logic in main
.
However, it's ok to call ::testing::InitGoogleTest
in main
, as GTMGoogleTestRunner
calls InitGoogleTest.
grpc::testing::TestEnvironment
can also be called from main
, as it does some test initialization (install crash handler, seed RNG) that's not strictly required to run testcases on iOS.
Please follow these guidelines when porting tests to run on iOS:
main
needs to be moved to SetUpTestCase
/TearDownTestCase
, and TEST
needs to be changed to TEST_F
.*_IF_SUPPORTED()
macros to ensure that your code compiles on iOS.For example, the following test
TEST(MyTest, TestOne) {
ASSERT_DEATH(ThisShouldDie(), "");
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
return RUN_ALL_TESTS();
grpc_shutdown();
}
should be changed to
class MyTest : public ::testing::Test {
protected:
static void SetUpTestCase() { grpc_init(); }
static void TearDownTestCase() { grpc_shutdown(); }
};
TEST_F(MyTest, TestOne) {
ASSERT_DEATH_IF_SUPPORTED(ThisShouldDie(), "");
}
int main(int argc, char** argv) {
grpc::testing::TestEnvironment env(argc, argv);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Due to a limitation in GTMGoogleTestRunner, SetUpTestCase
/TeardownTestCase
will be called before/after every individual test case, similar to SetUp
/TearDown
.