{"id":3392,"date":"2024-04-20T23:56:39","date_gmt":"2024-04-20T14:56:39","guid":{"rendered":"http:\/\/43.203.250.216\/?p=3392"},"modified":"2025-10-01T16:26:08","modified_gmt":"2025-10-01T07:26:08","slug":"vscode%ec%97%90%ec%84%9c-gtest-%ed%85%8c%ec%8a%a4%ed%8a%b8-%ed%95%ad%eb%aa%a9-%ed%91%9c%ec%8b%9c%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=3392","title":{"rendered":"VSCode\uc5d0\uc11c GTest \ud14c\uc2a4\ud2b8 \ud56d\ubaa9 \ud45c\uc2dc\ud558\uae30"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"395\" height=\"326\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2024\/04\/vscode_gtest_explorer.png\" alt=\"\" class=\"wp-image-3394\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2024\/04\/vscode_gtest_explorer.png 395w, https:\/\/litcoder.com\/wp-content\/uploads\/2024\/04\/vscode_gtest_explorer-300x248.png 300w\" sizes=\"auto, (max-width: 395px) 100vw, 395px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">VSCode\uc758 Test Explorer\uc5d0 test case\ub4e4\uc744 \ud45c\uc2dc\ud558\uba74 \uadc0\ucc2e\uc740 \ud30c\ub77c\ubbf8\ud130 \uc785\ub825 \uc5c6\uc774\ub3c4 \ud2b9\uc815 \ud14c\uc2a4\ud2b8\ucf00\uc774\uc2a4\ub97c \uc2e4\ud589\ud558\uac70\ub098 \ub514\ubc84\uadf8\ud560 \uc218 \uc788\uc5b4\uc11c \uc5ec\ub7ec\ubaa8\ub85c \ud3b8\ub9ac\ud55c \uc810\uc774 \ub9ce\ub2e4. \ud558\uc9c0\ub9cc GTest\ub85c \uc791\uc131\ud55c C++ \ud14c\uc2a4\ud2b8\ucf00\uc774\uc2a4\ub4e4\uc740 \uc790\ub3d9\uc73c\ub85c discover\ub418\uc9c0 \uc54a\uc544\uc11c \uc57d\uac04\uc758 \uc124\uc815\uc744 \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. \ubcf5\uc7a1\ud55c \uac83\uc740 \uc544\ub2c8\uace0 \uc544\ub798\uc640 \uac19\uc774 GTest\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 CMake \ud568\uc218\uc778 <strong>gtest_discover_tests()<\/strong>\ub97c \uc774\uc6a9\ud558\uba74 \ub41c\ub2e4. <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Allow ctest to discover unittests.\nenable_testing()\ninclude(GoogleTest)\ngtest_discover_tests(\n    ${TEST_EXE}\n    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}\n)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">gtest_discover_tests() \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"https:\/\/cmake.org\/cmake\/help\/latest\/module\/GoogleTest.html#command:gtest_discover_tests\" data-type=\"link\" data-id=\"https:\/\/cmake.org\/cmake\/help\/latest\/module\/GoogleTest.html#command:gtest_discover_tests\">GoogleTest CMake \ubb38\uc11c<\/a>\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc73c\ub2c8 \ucc38\uace0 \ud558\ub3c4\ub85d \ud558\uc790. \uc5ec\uae30\uc5d0\uc11c\ub294 target\uc744 \uc2e4\ud589\ud30c\uc77c\uc758 \uc774\ub984\uc73c\ub85c, working directory\ub97c build\ub85c \uc124\uc815\ud574 \uc8fc\uc5c8\ub2e4. \uc804\uccb4 \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><script src=\"https:\/\/gist.github.com\/a198b28264461ef70e4b02b0c0b7cec8.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VSCode\uc758 Test Explorer\uc5d0 test case\ub4e4\uc744 \ud45c\uc2dc\ud558\uba74 \uadc0\ucc2e\uc740 \ud30c\ub77c\ubbf8\ud130 \uc785\ub825 \uc5c6\uc774\ub3c4 \ud2b9\uc815 \ud14c\uc2a4\ud2b8\ucf00\uc774\uc2a4\ub97c \uc2e4\ud589\ud558\uac70\ub098 \ub514\ubc84\uadf8\ud560 \uc218 \uc788\uc5b4\uc11c \uc5ec\ub7ec\ubaa8\ub85c \ud3b8\ub9ac\ud55c \uc810\uc774 \ub9ce\ub2e4. \ud558\uc9c0\ub9cc GTest\ub85c \uc791\uc131\ud55c C++ \ud14c\uc2a4\ud2b8\ucf00\uc774\uc2a4\ub4e4\uc740 \uc790\ub3d9\uc73c\ub85c discover\ub418\uc9c0 \uc54a\uc544\uc11c \uc57d\uac04\uc758 \uc124\uc815\uc744 \ud574\uc8fc\uc5b4\uc57c \ud55c\ub2e4. \ubcf5\uc7a1\ud55c \uac83\uc740 \uc544\ub2c8\uace0 \uc544\ub798\uc640 \uac19\uc774 GTest\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 CMake \ud568\uc218\uc778 gtest_discover_tests()\ub97c \uc774\uc6a9\ud558\uba74 \ub41c\ub2e4. gtest_discover_tests() \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 GoogleTest CMake \ubb38\uc11c\uc5d0\uc11c \ucc3e\uc744 \uc218 \uc788\uc73c\ub2c8 \ucc38\uace0 \ud558\ub3c4\ub85d [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[6],"tags":[322,59,61,293,279],"class_list":["post-3392","post","type-post","status-publish","format-standard","hentry","category-tools","tag-cmake","tag-googletest","tag-gtest","tag-unittest","tag-vscode"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4256,"url":"https:\/\/litcoder.com\/?p=4256","url_meta":{"origin":3392,"position":0},"title":"VScode test explorer\uc5d0 Rust \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4 \ud45c\uc2dc","author":"litcoder","date":"2026\ub144 4\uc6d4 1\uc77c","format":false,"excerpt":"rust-analyzer extension\uc744 \uc124\uce58\ud588\ub294\ub370\ub3c4 test explorer\uc5d0\uc11c rust unit test\uac00 \ud45c\uc2dc\ub418\uc9c0 \uc54a\ub294 \uacbd\uc6b0\ub294 \ub2e4\uc74c\uc744 \ud655\uc778\ud574 \ubcf4\uc790. Command palette\uc744 \uc5f4\uc5b4\uc11c open settings\ub97c \uac80\uc0c9\ud55c\ub2e4. \uc67c\ucabd pane\uc5d0\uc11c Extensions -> rust-analyzer\ub97c \uc120\ud0dd\ud558\uace0 Test Explorer \ud56d\ubaa9\uc744 \ucc3e\uc544 \"Show the Test Explorer view.\"\uac00 \uccb4\ud06c\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4. \ud55c\ucc38\uc744 \ucc3e\uc558\ub294\ub370 \uacb0\uad6d\uc740 \uc774\uac8c disabled\ub41c \uac83\uc774 \uc6d0\uc778 \uc774\uc5c8\ub2e4. \uc774 \ud56d\ubaa9\uc744 \uccb4\ud06c\ud558\uace0 \ub098\uba74\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/rust_txset_enabled.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/rust_txset_enabled.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/02\/rust_txset_enabled.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3090,"url":"https:\/\/litcoder.com\/?p=3090","url_meta":{"origin":3392,"position":1},"title":"Visual Studio Code test explorer\uc5d0\uc11c explorer\ub85c \ubcc0\uacbd\ub418\ub294 \ubb38\uc81c","author":"litcoder","date":"2022\ub144 3\uc6d4 15\uc77c","format":false,"excerpt":"VSCode\uc5d0\uc11c test explorer\uac00 \uc790\ub3d9\uc73c\ub85c explorer\ub85c \ubcc0\uacbd\ub418\ub294 \uac83\uc744 \ub9c9\uae30 \uc704\ud55c \ubc29\ubc95.","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2022\/03\/sc_vscode_testing_opentesting.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2022\/03\/sc_vscode_testing_opentesting.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2022\/03\/sc_vscode_testing_opentesting.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2022\/03\/sc_vscode_testing_opentesting.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1489,"url":"https:\/\/litcoder.com\/?p=1489","url_meta":{"origin":3392,"position":2},"title":"Android Studio\uc5d0\uc11c Googletest \uc0ac\uc6a9\uc744 \uc704\ud55c \uc124\uc815","author":"litcoder","date":"2016\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"Android Studio\ub294 \ub0b4 PC\uc5d0\uc11c \uc880 \ub290\ub9ac\uae34 \ud558\uc9c0\ub9cc, \ub2e4\ub978 IDE\ub4e4\uc5d0 \ube44\ud574\uc11c\ub294 Emacs key binding\uc774 \ube44\uad50\uc801 \uc798\ub418\uc5b4 \uc788\uc5b4\uc11c \ub9cc\uc871 \ud558\uba74\uc11c \uc870\uae08\uc529 \ubc30\uc6cc\uac00\uace0 \uc788\ub2e4. NDK\ub85c JNI\uc5d0\uc11c \ubd88\ub7ec\ub2e4 \uc4f8 native code\ub97c \uad6c\ud604\ud558\ub2e4 \ubcf4\ub2c8 Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 \ub9e4\ubc88 device\ub85c push \ud558\uace0 \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc774 \uaf64\ub098 \ubc88\uac70\ub85c\uc640\uc11c script\ub85c \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\ub2e4. \uc774 \uae00\uc5d0\uc11c\ub294 Android Studio\uc5d0\uc11c Googletest\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud55c\u2026","rel":"","context":"&quot;Android&quot;\uc5d0\uc11c","block_context":{"text":"Android","link":"https:\/\/litcoder.com\/?cat=2"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2016\/07\/androidstudio_edittool.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1760,"url":"https:\/\/litcoder.com\/?p=1760","url_meta":{"origin":3392,"position":3},"title":"Travis CI \uc124\uc815\uacfc docker image \uc0ac\uc6a9","author":"litcoder","date":"2019\ub144 1\uc6d4 14\uc77c","format":false,"excerpt":"GitHub project\uc5d0 CI\ub97c \ubd99\uc774\uace0 \uc2f6\uc740\ub370 Jenkins server\uac00 \ud68c\uc0ac firewall \uc548\uc5d0 \ub4e4\uc5b4 \uc788\uc5b4\uc11c GitHub\uc5d0\uc11c \uc9c1\uc811 webhook\uc744 \ubd99\uc77c \uc218 \uc5c6\ub294 \ubb38\uc81c\uac00 \uc788\ub2e4. Jenkins\uc758 GitHub plugin\uc73c\ub85c tunneling\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95 \ub4f1 \uc788\uae30\ub294 \ud558\uc9c0\ub9cc \ub2e4\ub978 CI \uc635\uc158\ub4e4\uc744 \uc0b4\ud3b4 \ubcf4\ub358\uc911 Open source project\uc5d0 \ub300\ud574\uc11c\ub294 \ubb34\ub8cc\ub77c\ub294\u00a0Travis CI\uac00 \uc788\ub2e4\ub294 \uac83\uc744 \uc54c\uac8c \ub418\uc5c8\ub2e4. Travis CI\ub294 \uae30\ubcf8\uc73c\ub85c Ubuntu\ub97c \uc9c0\uc6d0\ud558\uace0 \uadf8\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4532,"url":"https:\/\/litcoder.com\/?p=4532","url_meta":{"origin":3392,"position":4},"title":"Rust\uc640 Python unit test\uc758 \uacf5\uc874","author":"litcoder","date":"2026\ub144 7\uc6d4 1\uc77c","format":false,"excerpt":"\uc608\uc804 \uae00\uc5d0\uc11c vscode\uc758 test explorer\uc5d0 Rust\uc758 unittest\uac00 \ubcf4\uc774\ub3c4\ub85d \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc744 \ub2e4\ub8ec \uc801\uc774 \uc788\uc5c8\ub294\ub370, \uc5ec\uae30\uc5d0 Python test case (\uc5ec\uae30\uc11c\ub294 pytest)\ub3c4 \ud568\uaed8 \ud45c\uc2dc\ub418\ub3c4\ub85d \ud558\ub824\uba74 .vscode\/settings.json\uc744 \ud3b8\uc9d1\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4. \ud574\ub2f9 \ud504\ub85c\uc81d\ud2b8\uc758 \uacbd\uc6b0 \uac00\uc0c1\ud658\uacbd\uc744 source root\uc5d0 \ub450\uc9c0 \uc54a\uace0 \uc11c\ube0c \ub514\ub809\ud1a0\ub9ac\uc778 service\/.venv \uc548\uc5d0 \ub123\uc5b4 \ub450\uc5c8\uae30 \ub54c\ubb38\uc5d0 python.defaultInterpreterPath \uac12\uc744 \uc774\uacf3\uc73c\ub85c \uc9c1\uc811 \uc124\uc815\ud574 \uc8fc\uace0 pytest \uc0ac\uc6a9\uc744 \uc704\ud55c\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/06\/vscode_venv_python.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":4011,"url":"https:\/\/litcoder.com\/?p=4011","url_meta":{"origin":3392,"position":5},"title":"Raspberry Pi Pico, Visual Studio Code \uac1c\ubc1c\ud658\uacbd \uc124\uc815","author":"litcoder","date":"2026\ub144 1\uc6d4 7\uc77c","format":false,"excerpt":"Raspberry Pi Pico\ub85c \uc774\uac83 \uc800\uac83 \ud574\ubcf4\ub824\uace0 \ub180\ub824\uace0 \uac1c\ubc1c \ud658\uacbd\uc744 \uc124\uc815\ud574 \ubcf4\uc558\ub2e4. \ucc38\uace0\ud55c \ubb38\uc11c\ub4e4\uc5d0\ub294 Thonny IDE\ub97c \uae30\uc900\uc73c\ub85c \uc124\uba85\ub41c \uac83\ub4e4\uc774 \ub9ce\uc558\uc73c\ub098 vscode\uc5d0\uc11c\ub3c4 Pico\uac00 \uc798 \uc9c0\uc6d0\ub418\uace0 \uc788\uc5b4\uc11c \uc774\uac83\uc744 \uae30\uc900\uc73c\ub85c \ud658\uacbd\uc744 \uc124\uc815\ud588\ub2e4. Raspberry Pi Pico vs Arduino Uno Pico\uc758 \uc0dd\uae40\uc0c8\ub294 Arduino Nano\uc640 \uc720\uc0ac\ud558\uc9c0\ub9cc, \uae30\ub2a5 \uce21\uba74\uc5d0\uc11c\ub294 Uno\uc640 \uacac\uc904\ub9cc \ud558\ub2e4. Raspberry Pi Pico (RP2040)Arduino Uno (ATmega328P)Processor\u2026","rel":"","context":"&quot;Gadgets&quot;\uc5d0\uc11c","block_context":{"text":"Gadgets","link":"https:\/\/litcoder.com\/?cat=3"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2025\/12\/SC_vscode_rp2_extension.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2025\/12\/SC_vscode_rp2_extension.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2025\/12\/SC_vscode_rp2_extension.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2025\/12\/SC_vscode_rp2_extension.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2025\/12\/SC_vscode_rp2_extension.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3392"}],"version-history":[{"count":6,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3392\/revisions"}],"predecessor-version":[{"id":3676,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3392\/revisions\/3676"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}