1import{_ as k,c as d,e as h,d as p,w as e,r,o as c,a as s,b as i}from"./app-Clroc_5r.js";const g={};function A(y,a){const t=r("CodeTabs");return c(),d("div",null,[a[6]||(a[6]=h(`<h4 id="æå¦è§é¢" tabindex="-1"><a class="header-anchor" href="#æå¦è§é¢"><span>æå¦è§é¢</span></a></h4><div class="hint-container tip"><p class="hint-container-title">å³å°å°æ¥ ...</p><ul><li>ã12ãCMakeï¼CTest å·¥å ·</li></ul></div><hr><h2 id="_1-åè¨" tabindex="-1"><a class="header-anchor" href="#_1-åè¨"><span>1. åè¨</span></a></h2><p>CMake æä¾äºä¸ä¸ªå为 CTest çå·¥å ·ï¼ç¨äºç®¡çåè¿è¡æµè¯ç¨ä¾ã主è¦åè½æ</p><ul><li>èªå¨åç°åè¿è¡æµè¯</li><li>å¹¶è¡æµè¯æ§è¡</li><li>æµè¯ç»ææ¶é忥å</li></ul><div class="hint-container tip"><p class="hint-container-title">æç¤º</p><p>æµè¯ä¸è¬å为以ä¸å ç§ç±»åï¼</p><ul><li>åå æµè¯ ââ 宿¯å¯¹è½¯ä»¶ä¸çæå°å¯æµè¯åå è¿è¡æ£æ¥åéªè¯çè¿ç¨ãåå æµè¯é常æ¯ç±å¼å人åç¼åçï¼ç¨äºéªè¯ä»£ç çæ£ç¡®æ§ãåå æµè¯çç®çæ¯ç¡®ä¿ä»£ç çæ¯ä¸ªé¨åé½è½æ£å¸¸å·¥ä½ï¼ä»èæé«ä»£ç çè´¨éãåå æµè¯ä¸è¬é离æ§å¼ºï¼ä¸ä¾èµå¤é¨ç»ä»¶ã</li><li>éææµè¯ ââ 宿¯å¯¹è½¯ä»¶ä¸çå¤ä¸ªæ¨¡åè¿è¡èåæµè¯çè¿ç¨ãéææµè¯é常æ¯ç±æµè¯äººååå¼å人åå ±åç¼åçï¼ç¨äºéªè¯è½¯ä»¶çæ´ä½åè½ãéææµè¯çç®çæ¯ç¡®ä¿è½¯ä»¶çå个模åè½å¤ååå·¥ä½ï¼ä»èæé«è½¯ä»¶çè´¨éãéææµè¯ä¸è¬éè¦æµè¯ç¯å¢ã</li><li>ç³»ç»æµè¯ ââ 宿¯å¯¹è½¯ä»¶çæ´ä½åè½è¿è¡æµè¯çè¿ç¨ãç³»ç»æµè¯é常æ¯ç±æµè¯äººåç¼åçï¼ç¨äºéªè¯è½¯ä»¶çæ´ä½åè½ãç³»ç»æµè¯çç®çæ¯ç¡®ä¿è½¯ä»¶çæ´ä½åè½è½å¤æ»¡è¶³ç¨æ·çéæ±ãç³»ç»æµè¯ä¸è¬éè¦å®æ´çæµè¯ç¯å¢ï¼ä¸»è¦å¨åè½ãæ§è½ãè´è½½ãå®å ¨çæ¹é¢è¿è¡æµè¯ã</li></ul></div><h2 id="_2-ctest-çåºæ¬ä»ç»" tabindex="-1"><a class="header-anchor" href="#_2-ctest-çåºæ¬ä»ç»"><span>2. CTest çåºæ¬ä»ç»</span></a></h2><p>å¨å®è£ CMake çåæ¶ï¼CTest ä¹ä¼è¢«å®è£ ãå æ¤ï¼æä»¬å¯ä»¥ç´æ¥å¨ <code>CMakeLists.txt</code> æä»¶ä¸ä½¿ç¨ CTest ç¸å ³çå 容ã</p><h3 id="_2-1-å¯ç¨æµè¯" tabindex="-1"><a class="header-anchor" href="#_2-1-å¯ç¨æµè¯"><span>2.1 å¯ç¨æµè¯</span></a></h3><p>卿·»å æµè¯ä¹åï¼æä»¬éè¦å¨ <code>CMakeLists.txt</code> æä»¶ä¸å¯ç¨æµè¯ãå¯ç¨æµè¯çæ¹æ³æ¯å¨ <code>CMakeLists.txt</code> æä»¶ä¸æ·»å </p><div class="language-cmake line-numbers-mode" data-highlighter="shiki" data-ext="cmake" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cmake"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">enable_testing</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>æä»¬å åå¤ä¸ä¸ªç®åç计ç®ä¸¤æ°ä¹åç项ç®ï¼ç®å½å¦ä¸</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>Add</span></span> 2<span class="line"><span>âââ CMakeLists.txt</span></span> 3<span class="line"><span>âââ main.cpp</span></span> 4<span class="line"><span>âââ add.cpp</span></span> 5<span class="line"><span>âââ add.hpp</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,14)),p(t,{id:"75",data:[{id:"<code v-pre>add.cpp</code>"},{id:"<code v-pre>
5add.hpp</code>"},{id:"<code v-pre>main.cpp</code>"}]},{title0:e(({value:n,isActive:l})=>[...a[0]||(a[0]=[s("span",null,[s("code",null,"add.cpp")],-1)])]),title1:e(({value:n,isActive:l})=>[...a[1]||(a[1]=[s("span",null,[s("code",null,"add.hpp")],-1)])]),title2:e(({value:n,isActive:l})=>[...a[2]||(a[2]=[s("span",null,[s("code",null,"main.cpp")],-1)])]),tab0:e(({value:n,isActive:l})=>[...a[3]||(a[3]=[s("div",{class:"language-cpp line-numbers-mode","data-highlighter":"shiki","data-ext":"cpp",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[s("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[s("code",{class:"language-cpp"},[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"include"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},' "'),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"add.hpp"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"')]),i(` 6`),s("span",{class:"line"}),i(` 7`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," add"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," a"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},","),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," b"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},")")]),i(` 8`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"{")]),i(` 9`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}}," return"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," a "),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"+"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," b"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";")]),i(` 10`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"}")])])]),s("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1)])]),tab1:e(({value:n,isActive:l})=>[...a[4]||(a[4]=[s("div",{class:"language-cpp line-numbers-mode","data-highlighter":"shiki","data-ext":"cpp",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[s("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[s("code",{class:"language-cpp"},[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"ifndef"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," ADD_HPP")]),i(` 11`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"define"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," ADD_HPP")]),i(` 12`),s("span",{class:"line"}),i(` 13`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," add"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," a"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},","),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," b"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},");")]),i(` 14`),s("span",{class:"line"}),i(` 15`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"endif"),s("span",{style:{"--shiki-light":"#A0ADA0","--shiki-dark":"#758575DD"}}," // ADD_HPP")])])]),s("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1)])]),tab2:e(({value:n,isActive:l})=>[...a[5]||(a[5]=[s("div",{class:"language-cpp line-numbers-mode has-collapsed-lines collapsed","data-highlighter":"shiki","data-ext":"cpp",style:{"--vp-collapsed-lines":"6","--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[s("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[s("code",{class:"language-cpp"},[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"include"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}}," <"),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"cstdio"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},">")]),i(` 16`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"include"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}}," <"),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"cstdlib"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},">")]),i(` 17`),s("span",{class:"line"}),i(` 18`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"#"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"include"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},' "'),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"add.hpp"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"')]),i(` 19`),s("span",{class:"line"}),i(` 20`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," main"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"int"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," argc"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},","),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," char"),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," *"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"argv"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"[])")]),i(` 21`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"{")]),i(` 22`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}}," if"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ("),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}},"argc "),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"<"),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 4"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},")")]),i(` 23`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," {")]),i(` 24`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," printf"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"Usage: "),s("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}},"%s"),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," <a> <b> <sum>"),s("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}},"\\n"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},","),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," argv"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"["),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"0"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"]);")]),i(` 25`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}}," return"),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," -"),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"1"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";")]),i(` 26`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," }")]),i(` 27`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," ")]),i(` 28`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," a "),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," std"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"::"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}},"atoi"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"argv"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"["),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"1"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"]);")]),i(` 29`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," b "),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," std"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"::"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}},"atoi"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"argv"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"["),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"2"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"]);")]),i(` 30`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," predict "),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," std"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"::"),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}},"atoi"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"argv"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"["),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"3"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"]);")]),i(` 31`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," int"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," sum "),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," add"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}},"a"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},","),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," b"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},");")]),i(` 32`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}}," return"),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," sum "),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"=="),s("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}}," predict "),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"?"),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 0"),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," :"),s("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," -"),s("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}},"1"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";")]),i(` 33`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"}")])])]),s("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})]),s("div",{class:"collapsed-lines"})],-1)])]),_:1}),a[7]||(a[7]=h(`<p>è¿æ¯ä¸ä¸ªç®åç计ç®ä¸¤æ°ä¹åç项ç®ï¼éè¦ç¨æ·è¾å ¥ 3 个å½ä»¤è¡åæ°ï¼å嫿¯ä¸¤ä¸ªå æ°å颿çåãå¦æè®¡ç®ç»æä¸é¢æçåç¸çï¼åè¿å <code>0</code>ï¼å¦åè¿å <code>-1</code>ãç¶åï¼æä»¬å¨ <code>CMakeLists.txt</code> æä»¶ä¸åå ¥ä»¥ä¸å 容</p><div class="language-cmake line-numbers-mode" data-highlighter="shiki" data-ext="cmake" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cmake"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">cmake_minimum_required</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">VERSION</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> 3.16)</span></span> 34<span class="line"></span> 35<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">project</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(Add)</span></span> 36<span class="line"></span> 37<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_library</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(add STA
37TIC add.cpp)</span></span> 38<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_executable</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(demo main.cpp)</span></span> 39<span class="line"></span> 40<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">target_link_libraries</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(demo </span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">PRIVATE</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> add)</span></span> 41<span class="line"></span> 42<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">enable_testing</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">()</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>è³æ¤ï¼æä»¬å®æäºæµè¯çåæåå¤å·¥ä½ã</p><h3 id="_2-2-æ·»å æµè¯" tabindex="-1"><a class="header-anchor" href="#_2-2-æ·»å æµè¯"><span>2.2 æ·»å æµè¯</span></a></h3><p>å¨ <code>CMakeLists.txt</code> æä»¶ä¸æ·»å æµè¯çæ¹æ³æ¯ä½¿ç¨ <code>add_test</code> å½ä»¤ã<code>add_test</code> å½ä»¤çè¯æ³å¦ä¸</p><div class="language-cmake line-numbers-mode" data-highlighter="shiki" data-ext="cmake" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cmake"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span></span> 43<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">name</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">> </span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># æµè¯çåç§°ï¼å¯ä»¥é便åï¼ä½æå¥½è§åç¥æ</span></span> 44<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">command</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">> [arg1 [arg2 ...]] </span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># æµè¯çå½ä»¤ï¼å¯ä»¥æ¯ä¸ä¸ªå¯æ§è¡æä»¶æä¸ä¸ªèæ¬</span></span> 45<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>å ¶ä¸ï¼<code>name</code> æ¯æµè¯çåç§°ï¼<code>command</code> æ¯æµè¯çå½ä»¤ãæä»¬å¨ <code>CMakeLists.txt</code> æä»¶æ«å°¾åå ¥ä»¥ä¸å 容以添å 5 个æµè¯</p><div class="language-cmake line-numbers-mode" data-highlighter="shiki" data-ext="cmake" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cmake"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> AddTest.positive </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> demo 1 2 3)</span></span> 46<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> AddTest.negative </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> demo -1 -2 -3)</span></span> 47<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> AddTest.zero </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> demo 0 0 0)</span></span> 48<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> AddTest.mixed </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> demo 1 -2 -1)</span></span> 49<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_test</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">NAME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> AddTest.failed_example </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">COMMAND</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> demo 1 2 4)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_2-3-è¿è¡æµè¯" tabindex="-1"><a class="header-anchor" href="#_2-3-è¿è¡æµè¯"><span>2.3 è¿è¡æµè¯</span></a></h3><p>å¨é¡¹ç®æ ¹ç®å½ä¸æ§è¡ä»¥ä¸å½ä»¤ï¼æå»ºé¡¹ç®</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">mkdir</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> build</span></span> 50<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">cd</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> build</span></span> 51<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cmake</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ..</span></span> 52<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cmake</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --build</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> .</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ç¶åï¼æä»¬å¯ä»¥ä½¿ç¨ä»¥ä¸å½ä»¤è¿è¡æµè¯</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ctest</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>è¿è¡ç»æå¦ä¸</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>Test project /path/to/Add/build</span></span> 53<span class="line"><span> Start 1: AddTest.positive</span></span> 54<span class="line"><span>1/5 Test #1: AddTest.positive ................. Passed 0.00 sec</span></span> 55<span class="line"><span> Start 2: AddTest.negative</span></span> 56<span class="line"><span>2/5 Test #2: AddTest.negative ................. Passed 0.00 sec</span></span> 57<span class="line"><span> Start 3: AddTest.zero</span></span> 58<span class="line"><span>3/5 Test #3: AddTest.zero ..................... Passed 0.00 sec</span></span> 59<span class="line"><span> Start 4: AddTest.mixed</span></span> 60<span class="line"><span>
604/5 Test #4: AddTest.mixed .................... Passed 0.00 sec</span></span> 61<span class="line"><span> Start 5: AddTest.failed_example</span></span> 62<span class="line"><span>5/5 Test #5: AddTest.failed_example ...........***Failed 0.00 sec</span></span> 63<span class="line"><span></span></span> 64<span class="line"><span>80% tests passed, 1 tests failed out of 5</span></span> 65<span class="line"><span></span></span> 66<span class="line"><span>Total Test time (real) = 0.01 sec</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="_3-ä¸-googletest-ç»å使ç¨" tabindex="-1"><a class="header-anchor" href="#_3-ä¸-googletest-ç»å使ç¨"><span>3. ä¸ GoogleTest ç»å使ç¨</span></a></h2><p>GoogleTest æ¯ Google å¼åçä¸ä¸ª C++ æµè¯æ¡æ¶ï¼å®æä¾äºä¸°å¯çæè¨åæµè¯ç¨ä¾ç®¡çåè½ï¼CMake 乿ä¾äº GoogleTest ç¸å ³çå®å彿°ï¼å¯ä»¥å¾æ¹ä¾¿çå° GoogleTest ä¸ CTest éæã</p><h3 id="_3-1-æä»¶åå¤" tabindex="-1"><a class="header-anchor" href="#_3-1-æä»¶åå¤"><span>3.1 æä»¶åå¤</span></a></h3><p>é¦å ï¼æä»¬å¯ä»¥ç´æ¥å é¤ <code>main.cpp</code> æä»¶ï¼ä½å¯ä»¥æ·»å ä¸ä¸ªæµè¯æä»¶ <code>test_add.cpp</code>ï¼åæ´åçç®å½ç»æå¦ä¸</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>Add</span></span> 67<span class="line"><span>âââ CMakeLists.txt</span></span> 68<span class="line"><span>âââ add.cpp</span></span> 69<span class="line"><span>âââ add.hpp</span></span> 70<span class="line"><span>âââ test_add.cpp</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><code>test_add.cpp</code> æä»¶å 容å¦ä¸</p><div class="language-cpp line-numbers-mode" data-highlighter="shiki" data-ext="cpp" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cpp"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">#</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">include</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> <</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">gtest/gtest.h</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">></span></span> 71<span class="line"></span> 72<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">#</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">include</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">add.hpp</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span> 73<span class="line"></span> 74<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">TEST</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AddTest</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Positive</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> EXPECT_EQ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 75<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">TEST</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AddTest</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Negative</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> EXPECT_EQ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> -</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> -</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 76<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">TEST</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AddTest</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Zero</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> EXPECT_EQ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 77<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">TEST</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AddTest</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> Mixed</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> EXPECT_EQ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> -</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> -</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span> 78<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">TEST</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">AddTest</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> FailedExample</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> EXPECT_EQ</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>ç¶åï¼æä»¬æ¹å <code>CMakeLists.txt</code> æä»¶ï¼ä½¿å ¶æ¯æ GoogleTest æµè¯æ¡æ¶ãæ¹ååç <code>CMakeLists.txt</code> æä»¶å 容å¦ä¸</p><div class="language-cmake line-numbers-mode" data-highlighter="shiki" data-ext="cmake" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-cmake"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">cmake_minimum_required</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">VERSION</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> 3.16)</span></span> 79<span class="line"></span> 80<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">project</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(Add)</span></span> 81<span class="line"></span> 82<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_library</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(add STATIC add.cpp)</span></span> 83<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># å ä¸è¦çæä¸ºä»ä¹ test_add.cpp 没æ main 彿°ä¹å¯ä»¥ç¼è¯æå¯æ§è¡æä»¶ï¼åé¢ä¼è§£é</span></span> 84<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">add_executable</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(test_add test_add.cpp)</span></span> 85<span class="line"></span> 86<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">find_package</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(GTest REQUIRED) </span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">
86# å¯»æ¾ GTest åº</span></span> 87<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">include</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(GoogleTest) </span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># ä½¿ç¨ GoogleTest æä¾ç CMake 彿°</span></span> 88<span class="line"></span> 89<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># GTest::gtest_main æä¾äº main 彿°ï¼å æ¤ test_add.cpp ä¸éè¦é¢å¤æä¾ main 彿°</span></span> 90<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">target_link_libraries</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">(test_add</span></span> 91<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> PRIVATE</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> add GTest::gtest_main</span></span> 92<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">)</span></span> 93<span class="line"></span> 94<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">enable_testing</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">()</span></span> 95<span class="line"></span> 96<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># èªå¨æ·»å GoogleTest æµè¯ç¨ä¾</span></span> 97<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">gtest_discover_tests(test_add)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_3-2-è¿è¡æµè¯" tabindex="-1"><a class="header-anchor" href="#_3-2-è¿è¡æµè¯"><span>3.2 è¿è¡æµè¯</span></a></h3><p>å¨é¡¹ç®æ ¹ç®å½ä¸æ§è¡ä»¥ä¸å½ä»¤ï¼æå»ºé¡¹ç®</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">mkdir</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> build</span></span> 98<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">cd</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> build</span></span> 99<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cmake</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ..</span></span> 100<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cmake</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> --build</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> .</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>æåï¼æä»¬å¯ä»¥ä½¿ç¨ä»¥ä¸å½ä»¤è¿è¡æµè¯</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ctest</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>è¿è¡ç»æå¦ä¸</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>Test project /path/to/Add/build</span></span> 101<span class="line"><span> Start 1: AddTest.Positive</span></span> 102<span class="line"><span>1/5 Test #1: AddTest.Positive ................. Passed 0.00 sec</span></span> 103<span class="line"><span> Start 2: AddTest.Negative</span></span> 104<span class="line"><span>2/5 Test #2: AddTest.Negative ................. Passed 0.00 sec</span></span> 105<span class="line"><span> Start 3: AddTest.Zero</span></span> 106<span class="line"><span>3/5 Test #3: AddTest.Zero ..................... Passed 0.00 sec</span></span> 107<span class="line"><span> Start 4: AddTest.Mixed</span></span> 108<span class="line"><span>
1084/5 Test #4: AddTest.Mixed .................... Passed 0.00 sec</span></span> 109<span class="line"><span> Start 5: AddTest.FailedExample</span></span> 110<span class="line"><span>5/5 Test #5: AddTest.FailedExample ............***Failed 0.00 sec</span></span> 111<span class="line"><span></span></span> 112<span class="line"><span>80% tests passed, 1 tests failed out of 5</span></span> 113<span class="line"><span></span></span> 114<span class="line"><span>Total Test time (real) = 0.01 sec</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,31))])}const m=k(g,[["render",A]]),u=JSON.parse('{"path":"/tutorial/cmake/12.html","title":"ã12ãCTest å·¥å ·","lang":"zh-CN","frontmatter":{"title":"ã12ãCTest å·¥å ·","description":"æå¦è§é¢ å³å°å°æ¥ ... ã12ãCMakeï¼CTest å·¥å · 1. åè¨ CMake æä¾äºä¸ä¸ªå为 CTest çå·¥å ·ï¼ç¨äºç®¡çåè¿è¡æµè¯ç¨ä¾ã主è¦åè½æ èªå¨åç°åè¿è¡æµè¯ å¹¶è¡æµè¯æ§è¡ æµè¯ç»ææ¶éåæ¥å æç¤º æµè¯ä¸è¬å为以ä¸å ç§ç±»åï¼ åå æµè¯ ââ 宿¯å¯¹è½¯ä»¶ä¸çæå°å¯æµè¯åå è¿è¡æ£æ¥åéªè¯çè¿ç¨ãåå æµè¯é常æ¯ç±å¼å人åç¼åçï¼ç¨äºéª...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"ã12ãCTest å·¥å ·\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-12-28T11:42:56.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.cccolt.top/tutorial/cmake/12.html"}],["meta",{"property":"og:site_name","content":"Cccolt 个人主页"}],["meta",{"property":"og:title","content":"ã12ãCTest å·¥å ·"}],["meta",{"property":"og:description","content":"æå¦è§é¢ å³å°å°æ¥ ... ã12ãCMakeï¼CTest å·¥å · 1. åè¨ CMake æä¾äºä¸ä¸ªå为 CTest çå·¥å ·ï¼ç¨äºç®¡çåè¿è¡æµè¯ç¨ä¾ã主è¦åè½æ èªå¨åç°åè¿è¡æµè¯ å¹¶è¡æµè¯æ§è¡ æµè¯ç»ææ¶éåæ¥å æç¤º æµè¯ä¸è¬å为以ä¸å ç§ç±»åï¼ åå æµè¯ ââ 宿¯å¯¹è½¯ä»¶ä¸çæå°å¯æµè¯åå è¿è¡æ£æ¥åéªè¯çè¿ç¨ãåå æµè¯é常æ¯ç±å¼å人åç¼åçï¼ç¨äºéª..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-12-28T11:42:56.000Z"}],["meta",{"property":"article:modified_time","content":"2024-12-28T11:42:56.000Z"}]]},"readingTime":{"minutes":4.71,"words":1413},"git":{"createdTime":1713775023000,"updatedTime":1735386176000,"contributors":[{"name":"zhaoxi","username":"zhaoxi","email":"[email protected]","commits":4,"avatar":"https://avatars.githubusercontent.com/zhaoxi?v=4","url":"https://github.com/zhaoxi"}]},"autoDesc":true,"filePathRelative":"tutorial/cmake/12.md","headers":[]}');export{m as comp,u as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.