|
hace 3 meses | |
---|---|---|
.. | ||
client | hace 3 meses | |
cocoapods | hace 3 meses | |
codegen | hace 3 meses | |
common | hace 3 meses | |
end2end | hace 3 meses | |
ext | hace 3 meses | |
grpclb | hace 3 meses | |
interop | hace 3 meses | |
ios | hace 3 meses | |
microbenchmarks | hace 3 meses | |
naming | hace 3 meses | |
performance | hace 3 meses | |
qps | hace 3 meses | |
security | hace 3 meses | |
server | hace 3 meses | |
test | hace 3 meses | |
thread_manager | hace 3 meses | |
util | hace 3 meses | |
README-iOS.md | hace 3 meses |
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
.