From add834577b45af4416e62e6ebd2cda9bd733c7ed Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 1 Mar 2024 14:58:22 +0100 Subject: [PATCH] Doc: Update info about autotests - Split the topic up into how-to and reference topics - Add and remove descriptions of preferences - Move general information to the overview - Describe qdt locator filter Task-number: QTCREATORBUG-30209 Task-number: QTCREATORBUG-29361 Change-Id: Idb29eebaeb2f77326ebbb5e6b5654c135473f329 Reviewed-by: Christian Stenger --- .../qtcreator-autotests-project-qt-test.png | Bin 9867 -> 0 bytes ...creator-autotests-project-qtquick-test.png | Bin 9287 -> 0 bytes .../images/qtcreator-new-file-test-case.webp | Bin 0 -> 6308 bytes .../qtcreator-new-project-boost-test.webp | Bin 0 -> 6572 bytes .../qtcreator-new-project-catch2-test.webp | Bin 0 -> 6958 bytes .../qtcreator-new-project-google-test.webp | Bin 0 -> 6694 bytes .../images/qtcreator-new-project-qt-test.webp | Bin 0 -> 5602 bytes .../qtcreator-new-project-qtquick-test.webp | Bin 0 -> 5368 bytes .../qtcreator-preferences-testing-qttest.webp | Bin 4594 -> 4690 bytes .../qtcreator-projects-settings-testing.webp | Bin 0 -> 3032 bytes .../images/qtcreator-test-results.webp | Bin 0 -> 5048 bytes .../howto/creator-only/creator-autotest.qdoc | 944 ++++++++++-------- .../howto/creator-only/creator-how-tos.qdoc | 12 + .../creator-only/creator-overview.qdoc | 59 +- .../creator-only/creator-reference.qdoc | 2 +- .../creator-only/creator-testing.qdoc | 7 +- .../creator-only/creator-files-creating.qdoc | 4 +- .../creator-projects-creating.qdoc | 4 +- .../projects/creator-projects-running.qdoc | 2 +- doc/qtcreator/src/qtcreator-toc.qdoc | 5 +- doc/qtcreator/src/qtcreator.qdoc | 7 +- 21 files changed, 623 insertions(+), 423 deletions(-) delete mode 100644 doc/qtcreator/images/qtcreator-autotests-project-qt-test.png delete mode 100644 doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png create mode 100644 doc/qtcreator/images/qtcreator-new-file-test-case.webp create mode 100644 doc/qtcreator/images/qtcreator-new-project-boost-test.webp create mode 100644 doc/qtcreator/images/qtcreator-new-project-catch2-test.webp create mode 100644 doc/qtcreator/images/qtcreator-new-project-google-test.webp create mode 100644 doc/qtcreator/images/qtcreator-new-project-qt-test.webp create mode 100644 doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp create mode 100644 doc/qtcreator/images/qtcreator-projects-settings-testing.webp create mode 100644 doc/qtcreator/images/qtcreator-test-results.webp diff --git a/doc/qtcreator/images/qtcreator-autotests-project-qt-test.png b/doc/qtcreator/images/qtcreator-autotests-project-qt-test.png deleted file mode 100644 index aa5bee758c641cdee31a196f19458ddfddfea18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9867 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 UdrtpkU|?YIboFyt=akR{0H3h>rvLx| diff --git a/doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png b/doc/qtcreator/images/qtcreator-autotests-project-qtquick-test.png deleted file mode 100644 index 24d61b245aca3603ac8f7774911bcee1e783446e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9287 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 DyWD@~ literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-new-project-catch2-test.webp b/doc/qtcreator/images/qtcreator-new-project-catch2-test.webp new file mode 100644 index 0000000000000000000000000000000000000000..040f2a586b1bb6e81cc855a94e6804ead7627dd5 GIT binary patch literal 6958 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-new-project-google-test.webp b/doc/qtcreator/images/qtcreator-new-project-google-test.webp new file mode 100644 index 0000000000000000000000000000000000000000..eca2110f039f3965ee2a76d518018e9fd390b936 GIT binary patch literal 6694 zcmWIYbaRuFVqge&bqWXzu<#L*Vqnl$Jlw({%6)s=M48UN)BpbS`Qqu~6>;|{!%l}rF-F~s|zH)h|Vvd&c44s!9O6|gt z%XS0>Z+le3d^xo0XwWhFgUj#4UDB&z*_D*$|LxcM|8dXXES)DT><&pU0- z%&)~y)-8=%x_fe;^CjsQ-EUl&7KKc>`0sL)%E>(GQ11ew9b~#FvM1E%Q`7C*JCdv`&k$Pg|F2 z_v~KspN|J7=HA}2^?LEC6Wcb<%l-Y=?Y;Cry*rot{+(WwtL?Gi@slWvV>0PKow^Tv zct3NJzRO$H`Rz;oms~i%dnvzH$34}bS{fR^_IzRN+_Yix3U!C7$t;ywYfa^+mYw=P zg{AKAmX?p_j&5&gy>xl?lAX0e%5O_KXFRf=E~uEYYl-k#ZS>T z#jz>#=8NC0KVh?Y%k|=^FK3GAoqF+QhxS|#ziTm@;sy5_Mz||ZzI8t7_=(nqn!mgx zuN+D;&;KH~AX5L+#83hImF(N+rvEL>{d^`RJYw&`!|sb-Bu`RYdb*FX`&7&cts>=> zjNL!gg7T(%zK?N}-BV!Ja&>myjn9%Vl`p9;egD?w%ig&gTAO04cC16}?Pt}Rw`<%lUk+cWDCRuHY%k}mV|SGP1>Euz&v-O(y`X)@!vhvues{ck5tqO% z!lcu=)cos*gI4b+zmRRwn)O>O^~L=IcYeQ^vFJ+j2kq1sX%8A7rLbfyt`KdTTP^Ra z*R;%V`_j{Dn`?wlHKeG#u3K@4@rXr`N~-Kjr=p1#%KJ6uGu>@yW%$?Ne(XZ{tws7< ztxlx(e+d;>(0iqMGUFF#v%Q=%7WpXWef9U|IPv^IlFSanHLF(4_;cpq3W3ILpA|DN zD9G%{i)s88+~RQigok`{URPIvz;>%VtDcb78@g+aP6{-Bn{e;_)GFzC4d$9hir3Y+ z8+Qrq`kZ0Jm!zybll7FzqiKc9UreJ=eXG z??S|yZ)-o%Uj4RcqPFPrWd4KY3wj@w{OJ9oWzms&MEA$3e4dZ#HS%p&-2N;uZ`!cR zYr60HNo%}9^ftDNDxG^5Qg)9s@VU};*LBI0-to>zE0^%It=L_zx0s>s*c0XQZ>HTz z+waa0-!nyzdtY7hA>a8^YZTA#n*Q&ztG|SJjohSv%75K|`Ln<#xl}f}T=uJg z;Q0%8S*^UdL%c43FPv|<+&`%+!X@W%Lit&(W4z}E7afsePNPHF(dqI7Rb zZi)I$kuLL_gU@?JwwpA(I`K|vRZ&*Px$c%z&Ubsme6KS6YT0qLD)Hz?$xX6uE`c0u zybBjRcc00@U7r!*cp+(qfUV)-AL&Zh0^+&uF$nTn3VhXIdggJJO(E}MTnCHQ+zS>J zFXfM(N{gA)aB%LOhd;~jDV=^4uqvRdl4afoIhT#BJ@pIs-pl6N>QV4&f+Y4Scn{tQYKhmxn4plfpNtw#xrZLKHqDW zy*5cJ#ByS6y^o^X5v3h2lME6vQk~L#CZ?KeF9_K*Bh!3!vYE8pRS9yo=|P0d4uSx ztXmqT62;mKWhD+tO2NM$zi(@~GFK&Wew+I3W#5ZFE;)R0hVVxZpTK|{cD*0XU;bvu zXV8wgTE*+LJhDRR#@l|IUty$r zp!m*&i2SyX`Yn+cr@SnOw5cf)W;gG|j`;{(qR+A`ND zuFswFPkEk2!Q9)ApG(wiFnA?vx8~i?PrNo3buqPHgzSp0+<5*_KBA!I{(ZK~owu)u zM%*#c-mdnPdD9KK`UmGV(`q91YwqpMNWU$c`TEmAp=Bp8eLiyMe(1e~s=3w`QIh{_ z+Ann5X#dSiO5|`8Jg=R)pebS&)VWX<69J6Ut1o0!u(&| ztfh0ZwgWW{dQ-_MG4wx17qmwr|M`Br}Ma`XT3x#!n?b-RDpFy~%n zhtJ2Nb^Gdrc?7M?xNb;9LX%lBt@-&mFN&AuLS`RKV9A8YcvZ4+46Ry`-2&QwcFDZ*n4-bUfuk$ zyXgMx<1$(qNv(QflGnVyxWCm7yda{p#4Fn|^r4k?=9!h5?z-HI?O}G7&j+XN z+a31&p{-!!<|#(UtV802MHr_AWmhjZX)D+;CF+>&I}lTYG#y|7@C-@}2*@byW6SKDX*! z@*=Fn9REUK{lWa_TlZlOPy&F*Alzfsm~m8omZWESwv zW9cKOgX^zYd7R$bn9sK+CHs*>aND&G?u^5Z1!?O;VjNBfX(^`M-qv59mYXXqfB3Z5 zqdD>`quP^hb5<(Vo$?a;aVJ@1gU?ik+Sk<=~6hAm_*<6=^O^2A zt!;O|9dKXRX*Z8`&Eff>ZIXK*O^$KDqjB!YOFwVPqi2*0Js-}H^PT%C+hYy?#78538+yv+OT`&6@rFEC*oMAVSaw$*~O^{nD zv><=S^Y@Q@Y;9qMeC3VoJ8x>< zd^leC<9J~~>95L;q=nOc1!9t3T`XZLvAX#7$L?&en+a!^lqhSn?hX2WnY&?rnBiju zvt9E33)kzuXkHX)^n8Zi`&C<`8Y){<7c7zS*HUKaHpy^JF|EGtv-h9D$+KRT58fyS zr8fPw3)cx)KEFNWd;R*2$gm*lX!D{+=gC)SK&~p6$rx`>^n~(lsW|b5Eug zuQ|6$<&1JD(-+=vk3M?sHAo9!+2Zl@sP?W;*JSj4)MuPfdHwx*T2O`J_fO9qN)MX4 z{xx5_Y}Z7&cY#&bOLr;TRs_d7?RE)SVY|mbHd}7;1?#rdJB&q3rOa!e+;Tl78fUHd zH>$POe^=xluC(@-2Tb=q3eWj&>1)1e!R#waN5ge4HSKwMZ69}4@+qTUXKw8WftxBX zy|Vpj@=VoGw*PHVfY;^EB@AJh?Hw655dFGoT6F4tjF?8Q%{U`tV)c>Y8&eM4LbJEc( z4Ea;IjdYjkO}NiI&+X0agpwzTckPS6Ot#ajIXCC~&&5;ILT{co)KL~X=#m?~^Jefg zi;_vRr&j$HtEfy4w+>qO$i21obG4&xir#Yn_=~+hYwd#m%S_+bq?7uv&+f&>4NMO& zED`+uGCQ#Ts7;olv2c|Zi*m%Y)duO$YM8F)InOSS+2(h9LChor``FG>nZ0&z0{_f4 zyS2{2?EblwjSh7k0xM;uI%C%V)_-WBqwF)wlAn)9ReiaFeQal?%w7SN&+gZEop`bM zyZrQf8=H7$C_GlJ3(2^4rt;~5!zT+jp0VkR`}5W&^Q!|}mUvzD+O9Ky^OD{ED;|1r z;xM1&+k|qNAKNsIpRZ(QS3iExtS?T$uBGO;|GtLVzpib}|MGr<%;7o-(GUqd>;FgD0}szsUfge(xaga>O2Vl# zl~pfnB((W;cN9O`({Xgk%+D1WiAVZ>tDWnPJTuF(zg^7j&yLbZdm4_e0ZSd|zpZwT zJJM%1NQ&*xj@(CkCfqg5ezwOkBk@4Lwfec=PVb(2|KIrHN8B=jpK2<>?i%qK43oa{ zrbk}pcxpXWTp{v)!8Fs}h_=&f@;~WGX-s=){Cake%|@R2k@q{&ew_K0mU|Gy)=^%z zGrv*OQ#?Z|Rphq${zw04rMc~ zc>D40t8EvL%}QvF>y>MNdYakzrF&|;qjQ4ilVyRnnQL3BY-+EWy!<7wq>7`}yGixr zs(npt2PT~0^>}nl=V>KZhV(LvG?N-XUDh2=Ie9MXyw5KsGfZN8aj;GDn`lT*0?7i65`1O84^r@Y8 z=~InP_67Hf&1Z0ad%5k}oc?_ix$W|%v**nbdzN)+$YB7s7Gn<#2W&0Kx$xOZ3ALhBIxvp$j)N!-Iy=`OL-+sdx73X!g87UavEn)t@^7r@Xqi^2J>C5`J zR!%OmnU~qWoaz0cHsxfu!%wDgMz%^{^gL{n1#uzIi}Pm^cnfCP-koIF`({VdykkFV zRE5;qZa+O}^wDnhq`D^IBAzYlr!ASXjH_t-!AbisX8AH5cVsa)=#{qGI9uiOre&UY z>|Qw8O*N?wTl(EG}UgmhI>GHUv zC_eg{$)$P@Cd>4SKEacghj&Xl&NtpuE%?>)@NQvEzjGfdRg@N<-COnQdUgZ5I?w-8 zpJqPcsh<$`rBp&{&$2T1Nrro7G;T3ymn>xbz9!s%qVb;-&-T6O&;A!-cEPKdYXZ}r zurJ+9H-tP~J9XU`g%=f%+0IWguHpE0n58yPcAd(@?=1>hFDz%&&6|<>u&C|$u?Gg$ zRZnD0HRsLRYIOW_|NY68A0FIqsWHv@W>dWIW0-Q)TgIZcxtz{iTs!cBap53{UNP$}`_x>F_Oya`MxOnqS^bRBT>; zLUNv5#X5fr_MiJNf81~Vbfe|-&cJKB=@pkYSQ|fxf6IBMxm|3-eDyC{UVrP1p3ISZ zerIX0@$+uIo1ncXG-ze}%>yBsJ!LOAuNTPK7=`V--*#JSq0nB|`pqe` zmh3OheP(pxZ|v5tn+lpgex&T`o$|Pqd*TJRXYpT{e<@yBQejmnWi(~_riQcg-djE} zK7UZ<^PK~N6Mp~pZ4_)?^5Flp`Ma5VB=61Y*gf-eXRh3y<9mWDb7D74vAQ<-)8^3Q zfBTNBWIKAV)Y-z*pS2cxrKl0dql_{=T#YZCMw^wHH z1COPz=lbsT=c)-c?p&c-@phs{;saM+1tE)|d#=oi{tkOWKbOZE;s z-&+~OclEbz&(gAdJJI6Ng8N!aXZ>D1acb~;gHD6Con`A5)~Y@~yLIo8 zUY^pAeR*ePIfvXjn>(ScMsshySSfpN#k?(HPPWIwB1%Sc^x7gC_Vl7b znDC(wYwBjdtTk7UK2iPU^D=YxXRT#|PUh+RTP4hj94k$FuC@rwIjX-!u=&oVWj2LQ zCO6i+TK~vtW2elFY1z#8-~8iLy!|cA>*?)n%@5ARt$es^>ZU0*W}9m>Bvuz19C?=~ z_^jjIwqZinve0gu!m3QG<*?*Id z&d(DPf@`*2UhEtka4_Pef@rL7cIkv)^VL>fX3yPTSHKYQGkkS~$YQI@24TWy1a9{i z6t9r{C6OEVT^ih2C%19ZqbYJp zrO{r8BYXvtefGEBJS^{WeaHRloAYKTCN4L8wud#cqra-QXX5H~^9QXfzHd)1k$#pQ zrs=Dh-M;H*XF|Hi>~oq6rCheIT+*=7J&Apmyzlio*0YnI#;u!wU3GuxnG0SIKQ4Rt zKlIGazm+!*8{R$pDO1@j>6ci_aqh4sFYfNJ{#%~*P=1N$ujuP(dd=qoF7SF;#&H<7 zpC}Cdo#p8@cixoG+iRZ6yq=));8CmL`_)TlecAr!&H+KS$?6vj!h}yqe6DJ_o>mdeD(NLVA<)y$l?yK@M@9J#bHZB z-f?X(uJSMX7TcO7P#_{dIj?!6RNJ$(bVBvF4lz~BC@o)>nRW9Z2xymR1{a-)1r0}`f^o|(}UleRM zy!E)j@l|SJn&y>jS`&W-Jm8vrcrnBC8!;Sd_t}ruyjfH?bzN_=Xa@s}N5h?aS<4_fCES@~)dmV3c$h*8@uXAW|#t?T3_253COevw3l1WA5&}+0|b@ z_7|up@El8i`tyAA`%0dQOjgkcUjG#>COy$Ob)+vtgX{cE_K0c!&lf&!Gq>+yl9~E+ zPi23Ey2b4;)<2Ha@;=PCUvT{H%NfTW3jPt9xb^P-|NE=ilBZmpaODx(p(ocw+D>P- z`m!us_c3Iq$o8(&*8*;>Y@D5&f9F~8Ilgx*c^A!^qcTG%&gF%wzCg&%n)_xC+$KFa zvGN|fWr5%P)fSvNItL?men^R{t=N!$U~S9tztdSfCtYxB^*K_+@jWMlPr#e`wfvo| z+tW-RKX`Y+T6M4Q0k$nX58l0d_s->3h$P$02Y>(VxDwXR`sk(2Iu%c|wVVI*#@^oc z_IHnc|7`|_6JddK*38Md?UuXvzf%*-ZfCm*|F}Muztrbn`+v{6`Ta}vmstE0T_!40 zUO(AxdIv}T?5eN_+Z%G8+^SJd?Uh&6Z{N>&{Ob8R&wq**w`tERwv5>-&wK5pw%5G% z7yhMQ{Pbt(|Jawe*{fDON{meZIYsaDpOqJ{yZ6XT&#%a6*72OZ_DYSX;d)!E$Ewq-6hyq{2{yYtywR(nIP-S@pXZ^pg+J27Ux z&C)-q7u6ciEK<49_dKOIK~8z$+1uX#UVPsCW$TybDfQ8O-!+-f?qK}(WR>E!d)q9w zy?>Nc-rMCL zWF5HJcLr&DEpPPjWD`if?s1~gDj{`Je(wF<=Po`;s#SJK++J!lKIGpJ=*va?VNpC!A^b zQF3mF{xLtZsrkufTguk2R*+6Mn)!-%lkGCCjN{7JLOz)3t#X%tm!mJYg2}Lvd)EEA z;U6cTx+~Ma!6xwBqueT$Jp5HqZ`I_pe^!2c zyOLkdBQi#T?Ssct53@dHPNw|(#mXnTs$Bn0oM+Zs;ZxUrvhmpwzB99{x4qxVetAOJ z_iOd{_OxbynBIP^e$D@g{|C3c-tBrJ-_Xd)QtFoh&+Zo@y;DrLb2zz_ta1zXPwSd1 z(3B@va!JYE+_q-hH8D=dLrTtTRp*~izUu$z$C-&$MiDI?MH|abuH~)~yVQ8Tsj209 zO_ZU;+KFeHjF{f$NE@a^$m%q0h;lyB-|H0=tJ3c{sS}!$%?>ZoII)y<4MX7bsMjV5UnXzpsNwVb)wJgI3@!!J zOPb0Xmvm=3oyvKy(K4%d))9uUM^-$2l_aE|cB*fN0Lu?c{=R@qe;2!Q==@oh$m`ji z>GXuvwCA5I$E|?9BKw$}CQRVHsOTJU&Sh;w;OT3vo(Wf2J177D%B|?+>$1}0(1Z3n z5C3hCPhPlDGqi2jC&?ErKNY%76TVCjx?Z%k#jSBNA8RTr3;U--Yi>;3xxokn5nTMYoU23C&H*Cca8%h!wqBqTj~O%$~Ar z3X|fEm%eFVrZX~KXz*CBq5WWo;=u+P&4p@#+7GWxa!@O)G1HzV-~E54>|!^rPoKLq zK1J?#-Dr_FsrjVZ9}Q+c4NE1jqfV+Usz%0NG&EIaKUy5fDCKZPsvt|fc3Pl|a#7Yc z9^RiXu8S<{SmCiQK!j&TRJViM87=SpkV8?P*-wnuUhIjye=;=njbJ?Et_dr?x+$EK zX;Avs=2vwfmV3sTcm8j_F1~&6jQ1IXmrU6=n`ufon`zHKQ~A&swPQ`|8Dc%I zglNn>v(l7-b>@VKh>r7*k8g1h>7CS6EB!8K^}f?b=kmE1>$NDZ*tFnEt@Pq}ReQD? z))$9dbc17G=L*|M*1VaveBrt!Tz7s*mfba2(X~(djFU(&-=zFIemtH6$6tMv+`piX zJCw2Hn)vFzD+a$#A2=hyzl~{&V&LRo%MGp?cP=t6T4{ARBe;j%dYRM@oeti`E7?m; zc`dhJ{Ka4EWFYlLzQu0EBd2Mh1aA;L`$6tkstf>Ke^HXL`onyIO`g*|5 zKcNf$JMQz{_$+hpjd%C9e6~9?Y0bu*Crjq3y@~&j{XL^2>wWNbXC|}d=QF(BT#aT` zyz{;B|6tGGH&1T6+S}Z@dp`EhpQrX~-f4H&l>PiS^RMOfx`M37TNsT0Z4S(_fsL+`8;yy9Bj!yZz!mX6Er-r$n4GH zH9P-Q&!}$L@AAYs=`Z|~_IdFR9HstY<%+M7=uy0!O1#cqb_iWff_nXF*a4HK}iu1$L&ZnC=h zudC5FzG~4z4ym0i;eme)pYHFrV$ltg=(^O)t>^20ccG!fVfT#-87dl`AME;mn0=|X z)2qpcm@78ciVFP?d}qW}z-bz>=E6xu8S}?Y?=Fb2Wkeil=Xh{bi-}>?4uR>4FI^un z?x~cKz7oZ2b$$M8xyok8ABXK#80^-^|5I(qTEE@=b-SPN*>7!~D%rMd=lJ6I3bhP_ zOkBfGRV-$^(6)bK?zeF53lsJ~SYOdC6c817p?mtJWB*pCR&Y(9Q|7WeqdIxTL9;*I zv!p+Y>!*IvnbQ!nXNt+U^G{T{=ZZAlI%|5Pt-kV=#EONSu@_8 zZ@$H=n11a#J8NQ$>}m6cIVUH-tG-`3J?2tz(WU6+awp|WK0Vp?eg5>iUk9A;KMJw@ z_2<>E1S`W|f1)p2uPthO?st7}u$6M@p1C_+-%q>$I?!6lEAY*CkGCdGN&j!z8;kr- zU*e~#VRrx3p7_)8x0GdT>Pp|%_TLg*X?R`FB}3`8y_ixRlRazMieCU?n12Pw`PPz2_^XlxE@_{{tLVj{zj@_=_Kglj}sj=FfstPwP%X)6V{6Fu{%B{Tn z{ogFHFsF^0cfwmHoSyUL$NPJJQ8Q0HPG#{cKOOw&_ttAB%lmIJEVVoQxUKNpJWjDE zv3z-TNggF#7xv#a^k%yHalU+p(0rYq_Ncb@eA_zzCyOkS=S>X|S#h$N^>mtbn%ea% zvu~$wUeu#uGc$S4UQbEE_u|1%l4{%7CQFtVvwPauUvT-i?YZA|^XRlG;#NXWrgPYa zX)M{kPWIy3cPr~{;@py&dvBB<-qj(mIcIMptMf|*|G#@C_1hlSJ$ZgL%RKoEqxcK| z9DR;V=K!Sw6<)O^dynjsH=pe7erA_xfK~P9$save_etNG!Tha{7F|6koN~lviG{X1k~3y+zkwC2Vzh`G)uO6#gY8D%&m| z@?+dN!!d5MYNBG}bM{$B(kJfzU&Q?Glg-QiBXU9CYp>dN&Jf9!6M5XWs3m<#Q@it| z%_mg9&Q4fT@-40Ju*(#$b1^3t&94_Yv_`@EP>$b&pN&1oH~u+Wwnp}}zgGUV<)uq6 z%&gdTk=JG6?7xpcUQIH3C}JF5^6AO9lRtJ8IRBc_HfMU$-{tVAY;!7~KA+leV-^*&oT~md2K| zMpJCd?DJ0^N~ENu9blW)(ksJT+wE!Wva49i>5#74+W#{c*8CT_R=@v&MaEC&Vy+H> zd;S$BWrynGK1v0B4^L}5tzVHMUuC~ug3El(>SW`;OXFX2RavQJ7Cc5 z*C@sI`ETfU=K76OD#{K?@a|6aNOM$AQp@8lz5ZOZP%q78(gX+VtJ%N$pZ=~)y%Oa! zOYzd&%UNBEHvB7ovrStgx>=+D=4tiJ{!h)qoK}sWB6jjmcir{)(n`J$&awe=+_SA; z_DPAfMJ=$~r?JG|CT2x{<^+RJ3||Y?{t7ag2go14B=1zTI}44pe-*z0fG*e}P!ydF86ELt@@~`fQ!gvlSWq9N3QY&v~`o zpl9ztZ;O{3)CCS^OSKtt?=ExaJ#+KY3P<}p*M$G<@lvfTa8P@^pfT>ZjZqgL&o{x# zk5~RrHJZ8ah2iz014hm)k*6Em>t%q*L7SG+Jldl-eFW+%sMtzAzY{`s89S0@qRvXMQp2+63eA@jC_jYn{rmdq*F_KPh0Cs*nIlq`CeS1jDdY8%EMP-5m!)1|- z1y|?2TDIswUZt(NL$Lo!hxULQ8@lc#7RWUzUuf%=HegvIeAz|PXVyZNUz?n*COJhO znBKg6-2&JTkyT{*N#QYJN_=5c!BRdUfv`zR>a$G>+tPzyc0J>%VqChlZ^02i_8$xR zOi~hy*`H5U$-P)J<(gHKkf{dG)&-jJA_cd$xL#hiweLYod-t*)=Ua<1FGspJDD~JZ z&`kHZB<4H&l2wy%a^8h0$ts!M%X~9s4|Xc-a0r&0yhL}F+0s%L_n49!M=jrP-|rHb zaDK7K!=%?%dX0aAp6%+}Y^Qtn;Uc~-?9Z81V_H*YY0FB=F+FHWDZS)f#XL+F7jCHCacL-TB=JOmcv+*1vD8G}qB--n)U4j}bmbYt^SRx3^aW#;sybil?zvYU`B>{=|Nn{q zz4e}-7CtRvsmJcKw^Dk2-=D>YUoKkAqA*L)@U`aD&&%ap9M9NW&3P1{XSKretW}eo zw`jAWj6{>ru5#i2i(5}d>NMP+QFAuPWlnPays~n;qCH2pcOp_#qQl#@~L+Ex^-cO zTXXqA%X>XRm-}2rzN}(WJ-7I3pvYOPCSjo&TA~>XLRUB!Y+zv8{q(DgV%4hZ_Jfr= zoF*4ST#CI!B$zIB-r6E6bT)&fYmZ-e+_D4F8GElkKRv&AUG&8F!6!5Qz z2$Jm=%H1~2=#1^px{0N7^G>|J^vQUt#HU$KdjI={&$M5Adch>PHL~rJN|nGjk>j%z z6}XeKLpt~pn^U%KJgj!kJLv45-n4=ZyapyMOJA&;*PP1}+M9a2ZPkR=Dzh%$(D<}( zPUX|jKd0?Iu_ozWrS>OYNwuYWoPI}p*FEcZe(!(V`jXb#U6>6~Vh&3g-Fmo3TWDmi~d_1y}oeI=L^p76x6IpkDay&H079 ZbGzDhpLdLUogwuoCH?R5HeRNe900C_*t7ru literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp b/doc/qtcreator/images/qtcreator-new-project-qtquick-test.webp new file mode 100644 index 0000000000000000000000000000000000000000..82124b958dea7e93a403c5c6b74e271b769b0d8f GIT binary patch literal 5368 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 Lv{|ykGbRQA!sKaw literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp b/doc/qtcreator/images/qtcreator-preferences-testing-qttest.webp index f6df07907ead584d1fd5a80ab08329a409c7d72b..b4cb5a5db1cf94de9004dbbe4e404e19937566cb 100644 GIT binary patch literal 4690 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 diff --git a/doc/qtcreator/images/qtcreator-projects-settings-testing.webp b/doc/qtcreator/images/qtcreator-projects-settings-testing.webp new file mode 100644 index 0000000000000000000000000000000000000000..6f8fe53a22f287e8c697169d6f9d39f839ed4158 GIT binary patch literal 3032 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 \uicontrol Testing - > \uicontrol General. - - The detection of tests is usually much faster for build system based - tests as this normally does not involve scanning or parsing. - The information in the tests tree is usually more detailed - when using code based tests. - - If you enable both code based and build system based tests, you - may duplicate tests inside the tests tree. See also \l {Selecting Tests to Run}. - - \section1 Creating Tests - - Use a wizard to create projects that have tests. - - \section2 Creating Qt and Qt Quick Tests - - To create a Qt or Qt Quick test: + To create a Qt test: \list 1 - \li Select \uicontrol File > \uicontrol {New Project} > - \uicontrol {Test Project} > \uicontrol {Qt Test Project} > - \uicontrol Choose to create a project with boilerplate code for a - Qt test, or \uicontrol File > \uicontrol {New Project} > - \uicontrol {Test Project} > \uicontrol {Qt Quick Test Project} > - \uicontrol Choose to create a Qt Quick test. - + \li Go to \uicontrol File > \uicontrol {New Project} > + \uicontrol {Test Project}. + \li Select \uicontrol {Qt Test Project} > \uicontrol Choose. \li In the \uicontrol {Project and Test Information} dialog, specify - settings for the project and test: - - \list 1 - - \li For a Qt test, select the \uicontrol {GUI Application} check - box to create a Qt application. - - \image qtcreator-autotests-project-qt-test.png {Autotest project wizard - Qt Test} - - \li In the \uicontrol {Test case name} field, enter a name for - the test case. - - \li For a Qt test, select the \uicontrol {Requires \QApplication} - check box to add the include statement for QApplication to - the main.cpp file of the project. - - \li For a Qt Quick test, select the - \uicontrol {Generate setup code} check box to execute C++ - code before running any of the QML tests. The testing - framework will call slots and invocable functions, as - described in \l{Executing C++ Before QML Tests}. - - \image qtcreator-autotests-project-qtquick-test.png {Autotest project wizard - Qt Quick Test} - - \li Select the \uicontrol {Generate initialization and cleanup - code} checkbox to add functions to your test that the - testing framework executes to initialize and clean - up the test. - - \li In the \uicontrol {Build system} field, select the build - system to use for building the project: qmake, CMake, or - Qbs. - - \endlist - + settings for the project and test. + \image qtcreator-new-project-qt-test.webp {Project and Test Information - Qt Test} + \li In \uicontrol {Test case name}, enter a name for the test case. + \li Select \uicontrol {Requires \QApplication} to add the include + statement for QApplication to the main.cpp file of the project. + \li Select \uicontrol {GUI Application} to create a Qt application. + \li Select \uicontrol {Generate initialization and cleanup code} + to add functions to your test that the testing framework + executes to initialize and clean up the test. + \li In \uicontrol {Build system}, select the build system to use + for building the project: CMake, qmake, or Qbs. \endlist \QC creates the test in the specified project directory. Edit the .cpp file - to add private slots for each test function in your test. For more information - about creating Qt tests, see \l{Creating a Test}. + to add private slots for each test function in your test. - \section2 Creating Google Tests + For more information about creating Qt tests, see \l{Creating a Test}. + + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ + +/*! + \page creator-how-to-create-qtquick-tests.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-test + + \title Create Qt Quick tests + + \QC integrates the \l{Qt Quick Test} unit test framework for Qt Quick + applications, where you write test cases as JavaScript functions. + + To create a Qt Quick test: + + \list 1 + \li Go to \uicontrol File > \uicontrol {New Project} > + \uicontrol {Test Project}. + \li Select \uicontrol {Qt Quick Test Project} > \uicontrol Choose. + \li In the \uicontrol {Project and Test Information} dialog, specify + settings for the project and test. + \image qtcreator-new-project-qtquick-test.webp {Project and Test Information - Qt Quick Test} + \li In \uicontrol {Test case name}, enter a name for the test case. + \li Select \uicontrol {Generate setup code} to execute C++ + code before running any of the QML tests. The testing + framework will call slots and invocable functions, as + described in \l{Executing C++ Before QML Tests}. + \li Select \uicontrol {Generate initialization and cleanup code} + to add functions to your test that the testing framework + executes to initialize and clean up the test. + \li In \uicontrol {Build system}, select the build system to use + for building the project: CMake, qmake, or Qbs. + \endlist + + \QC creates the test in the specified project directory. Edit the .cpp file + to add private slots for each test function in your test. + + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ + +/*! + \page creator-how-to-create-google-tests.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-test + + \title Create Google tests To create a Google test: \list 1 - \li Select \uicontrol File > \uicontrol {New Project} > - \uicontrol {Test Project} > \uicontrol {Google Test Project} > - \uicontrol Choose to create a project with boilerplate code for a - Google test. + \li Go to \uicontrol File > \uicontrol {New Project} > + \uicontrol {Test Project}. + + \li Select \uicontrol {Google Test Project} > \uicontrol Choose to create + a project with boilerplate code for a Google test. \li In the \uicontrol {Project and Test Information} dialog, specify settings for the project and test: + \image qtcreator-new-project-google-test.webp {Project and Test Information - Google test} + \list 1 - \li In the \uicontrol {Test framework} field, select + \li In \uicontrol {Test framework}, select \uicontrol {Google Test (shared libraries)} to link against - Google Test, or \uicontrol {Google Test (headers only)} to + Google Test or \uicontrol {Google Test (headers only)} to include necessary Google Test sources into the project. - \li In the \uicontrol {Test suite name} field, enter a name for + \li In \uicontrol {Test suite name}, enter a name for the test suite. - \li In the \uicontrol {Test case name} field, enter a name for + \li In \uicontrol {Test case name}, enter a name for the test case. - \li Select the \uicontrol {Enable C++ 11} check box to - support C++ 11 features in the test. + \li For a shared library test, you can set the path to a + Google C++ testing framework installation in + \uicontrol {Googletest install directory (optional)}. - \li In the \uicontrol {Google test repository} field, select - a directory that has a clone of the googletest - repository. + \li For a header-only test, you can set the path to + a googletest repository clone in + \uicontrol {Googletest source directory (optional)}. - To use an installed Google C++ Testing framework instead, - see \l{Setting Up the Google C++ Testing Framework}. - - \li In the \uicontrol {Build system} field, select the build - system to use for building the project: qmake, CMake, or - Qbs. + \li In \uicontrol {Build system}, select the build system to use + for building the project: CMake, qmake, or Qbs. \endlist \endlist \QC creates the test in the specified project directory. + For more information about creating Google tests, see the \l{https://github.com/google/googletest/blob/master/docs/primer.md} {Google Test Primer}. - \section2 Creating Boost Tests + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ - To build and run Boost tests, you must have the Boost.Test installed on the - development host. Typically, the Boost installation includes it. You can - download Boost from \l{https://www.boost.org/}{Boost.org}. +/*! + \page creator-how-to-create-boost-tests.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-test + + \title Create Boost tests + + To build and run Boost tests, install Boost.Test on the computer. + Typically, the Boost installation includes it. Download Boost from + \l{https://www.boost.org/}{Boost.org}. If the compiler and build system can find the Boost libraries, you do not need to specify the include directory when creating the test. @@ -169,37 +159,49 @@ To create a Boost test: \list 1 - \li Select \uicontrol File > \uicontrol {New Project} > - \uicontrol {Test Project} > \uicontrol {Boost Test Project} > + \li Go to \uicontrol File > \uicontrol {New Project} > + \uicontrol {Test Project}. + \li Select \uicontrol {Boost Test Project} > \uicontrol Choose to create a project with boilerplate code for a Boost test. \li In the \uicontrol {Project and Test Information} dialog, specify settings for the project and test: + \image qtcreator-new-project-boost-test.webp {Project and Test Information - Boost test} \list 1 - \li In the \uicontrol {Test framework} field, select - \uicontrol {Boost Test (headers only)} to include needed + \li In \uicontrol {Test framework}, select + \uicontrol {Boost Test (header only)} to include needed headers, or \uicontrol {Boost Test (shared libraries)} to link against Boost Test. - \li In the \uicontrol {Test suite name} field, enter a name for + \li In \uicontrol {Test suite name}, enter a name for the test suite. - \li In the \uicontrol {Test case name} field, enter a name for + \li In \uicontrol {Test case name}, enter a name for the test case. - \li In the \uicontrol {Boost include dir (optional)} field, + \li In \uicontrol {Boost include directory (optional)}, enter the path to the directory that has files needed by Boost.Test, such as \e version.hpp and the \e test subfolder that contains the test header files. - \li In the \uicontrol {Build system} field, select the build - system to use for building the project: qmake, CMake, or - Qbs. + \li In \uicontrol {Build system}, select the build + system to use for building the project: CMake, qmake, or Qbs. \endlist \endlist \QC creates the test in the project directory. + For more information about creating Boost tests, see \l{https://www.boost.org/doc/libs/1_81_0/libs/test/doc/html/index.html} {Boost.Test}. - \section2 Creating Catch2 Tests + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ + +/*! + \page creator-how-to-create-catch2-tests.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-test + + \title Create Catch2 tests To build and run Catch2 tests, you can either install Catch2 libraries and headers or use the single include header file in the @@ -211,38 +213,50 @@ To create a basic Catch2 test: \list 1 - \li Select \uicontrol File > \uicontrol {New Project} > - \uicontrol {Test Project} > \uicontrol {Catch2 Test Project} > - \uicontrol Choose to create a project with boilerplate code for a - Catch2 test. + \li Go to \uicontrol File > \uicontrol {New Project} > + \uicontrol {Test Project}. + \li Select \uicontrol {Catch2 Test Project} > \uicontrol Choose to create + a project with boilerplate code for a Catch2 test. \li In the \uicontrol {Project and Test Information} dialog, specify settings for the project and test: + \image qtcreator-new-project-catch2-test.webp {Project and Test Information dialog - Catch2 test} \list 1 - \li In the \uicontrol {Test framework} field, select + \li In \uicontrol {Test framework}, select \uicontrol {Catch2 v3 (shared libraries)} to link against Catch2 (recommended for version 3), or \uicontrol {Catch2 v2 (header only)} to use a single header include (recommended for version 2). - \li In the \uicontrol {Test case name} field, specify a name + \li In \uicontrol {Test case name}, specify a name for the test case file. - \li Select the \uicontrol {Use Qt libraries} check box - to use a self-defined main function and set up the project - to use Qt features. - \li In the \uicontrol {Catch2 include directory (optional)} field, - you may enter a path to the directory that has the + \li In \uicontrol {Catch2 install directory (optional)}, + you can enter a path to the directory that has the Catch2 header files. - \li In the \uicontrol {Build system} field, select the build - system to use for building the project: qmake, CMake, or - Qbs. + \li Select \uicontrol {Use own main} to use a self-defined + main function. + \li Select \uicontrol {Use Qt libraries} set up the project to + use Qt features. + \li In \uicontrol {Build system}, select the build + system to use for building the project: CMake, qmake, or Qbs. \endlist \endlist \QC creates the test in the project directory. + For more information about creating Catch2 tests, see \l{https://github.com/catchorg/Catch2/blob/master/docs/Readme.md} {Catch2}. - \section2 Creating CTest Based Tests + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ + +/*! + \page creator-how-to-create-ctests.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-test + + \title Create CTest Based Tests CTest can execute tests for CMake based projects regardless of the test framework. You configure tests in the project file, usually, CMakeLists.txt. @@ -256,75 +270,52 @@ Add \c test_example as an executable before trying to register it as test. It may be any executable command including arguments. - For detailed information on how to use CTest see + + For more information about how to use CTest, see \l{https://gitlab.kitware.com/cmake/community/-/wikis/doc/ctest/Testing-With-CTest} {Testing with CTest}. - \section1 Adding Tests To Existing Test Projects + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ - Use a wizard to add a new file containing additional tests for projects - containing a test project. +/*! + \page creator-how-to-add-tests-to-projects.html + \previouspage creator-how-tos.html - Select \uicontrol File > \uicontrol {New File} > \uicontrol {Test Case} > - \uicontrol Choose to add a new test case. + \ingroup creator-how-to-test - \note This is only supported for code based test frameworks except for + \title Add tests to existing test projects + + To add a new file that has test cases to a project that contains a test + project: + + \list 1 + \li Go to \uicontrol File > \uicontrol {New File}. + \li Select \uicontrol {Test Case} > \uicontrol Choose. + \li In \uicontrol {Test framework}, select the test framework in use. + This has to match the test framework you are using inside the project + you want to add this file to. + \image qtcreator-new-file-test-case.webp {Test Information dialog} + \endlist + + The settings to specify depend on the selected test framework. + + \note This is only supported for code based test frameworks, except for Qt Tests. There is no official support for having multiple test cases - inside a single Qt test application and it is better to create + inside a single Qt test application, and it is better to create a separate test sub project for each test case. - In \uicontrol {Test framework}, select the test framework in use. - This has to match the test framework you are using inside the project - you want to add this file to. + \sa {Test}{How To: Test}, {Testing}, {Test Results} +*/ - Depending on the chosen test framework, you can specify the test case - name, test suite name, the used filename, or further options. For a - detailed explanation, see the general information provided for each - test framework on its own in \l {Creating Tests}. +/*! + \page creator-how-to-build-and-run-tests.html + \previouspage creator-how-tos.html - \section1 Setting Up the Google C++ Testing Framework + \ingroup creator-how-to-test - To build and run Google tests, install and configure the Google C++ Testing - framework on the development host. You can either clone it from Git Hub or - install it from an installation package. - - To configure a project to use a cloned Google testing framework, edit the - \c INCLUDEPATH variable in the project file (.pro) to include the source - and \c include folders of Google Test's \c googletest and \c googlemock. - Usually, you need to add the following subfolders: - - \list - \li \c googletest - \li \c googlemock - \li \c googletest/include - \li \c googlemock/include - \endlist - - Also, add the necessary files to the \c SOURCES variable. For example: - - \list - \li \c googletest/src/gtest-all.cc - \li \c googlemock/src/gmock-all.cc - \endlist - - To configure a project to use an installed Google testing framework package, - add the following include paths to the .pro file: - - \list - \li \c /include/gtest - \li \c /include/gmock - \endlist - - Then add linker options to be able to find the libraries and to link against - them. For example, for qmake based projects, you typically need to add the - following values to the .pro file: - - \list - \li \c {LIBS += -lgtest -L} - \li \c {LIBS += -lgmock -L} - \endlist - - \section1 Building and Running Tests + \title Build and run tests To build and run tests: @@ -334,7 +325,7 @@ \li In the \uicontrol Tests view, select the tests to run. - \li In the \uicontrol {Test Results}, select: + \li In the \uicontrol {Test Results} view, select: \list \li \inlineimage icons/run_small.png @@ -359,20 +350,20 @@ To run the selected tests without deployment, select \uicontrol {Run Selected Tests Without Deployment}. - The functions to run tests are also available in the context menu in the - \uicontrol Tests view and in \uicontrol Tools > \uicontrol Tests. + You can run tests also from the context menu in the \uicontrol Tests view or + by going to \uicontrol Tools > \uicontrol Tests. \note If you enable both build system based and code based tests, - you may run tests twice when using \uicontrol {Run All Tests} or + you may run tests twice when selecting \uicontrol {Run All Tests} or \uicontrol {Run Selected Tests}. This happens if the tests can be found by the code based test frameworks and are registered as test with the build system. If a test takes more than a minute to execute, the default timeout might - stop the test execution. To increase the timeout, select \preferences > + stop the test execution. To increase the timeout, go to \preferences > \uicontrol {Testing} > \uicontrol General. - \section2 Selecting Tests to Run + \section1 Select tests to run The \uicontrol Tests view shows all the tests found for the currently active test frameworks in the current project. Select the test cases to run. @@ -398,10 +389,10 @@ select \inlineimage icons/leafsort.png (\uicontrol {Sort Naturally}). - \section2 Running and Debugging Tests from Code Editor + \section1 Run and debug tests from code editor You can run and debug tests in the file currently open in the code editor. - To run all tests in the open file, select \uicontrol Tools > + To run all tests in the open file, go to \uicontrol Tools > \uicontrol Tests > \uicontrol {Run Tests for Current File}. \note Available only for code based test frameworks. @@ -414,230 +405,395 @@ \note Availability for build system based tests depends on the build system tool's abilities. - \section1 Specifying Test Settings + \section1 Turn on build system based tests - To customize the handling of tests, test frameworks, and test tools, select + By default, \QC does not handle build system based tests to avoid + interference with code based parsers. To turn on build system based tests, + select the respective test tool in \preferences > \uicontrol Testing + > \uicontrol General. + + The detection of tests is usually much faster for build system based + tests as this normally does not involve scanning or parsing. + The information in the tests tree is usually more detailed + when using code based tests. + + If you turn on both code based and build system based tests, you + may duplicate tests inside the tests tree. + + \section1 Locate Qt Test data tags + + To locate Qt Test data tags: + + \list 1 + \li Press \key {Ctrl+K} (\key {Cmd+K} on \macos) to activate the locator. + \li Enter \c qdt, followed by a space. + \endlist + + \sa {Test}{How To: Test}, {Select the build system}, {Testing}, + {Test Results} +*/ + +/*! + \page creator-preferences-testing.html + \previouspage creator-reference.html + + \ingroup creator-reference-preferences + + \title Testing + + \brief Customize the handling of tests, test frameworks, and test tools. + + To set preferences for handling tests, go to \preferences > \uicontrol {Testing} > \uicontrol General. \image qtcreator-preferences-testing-general.webp {General tab in Testing preferences} - You can customize some settings at project level. To change settings - for the current project instead of globally, select \uicontrol Projects > - \uicontrol {Project Settings} > \uicontrol {Testing}. + The following table summarizes the general testing preferences. - In the \uicontrol {Active Test Frameworks} list, select tests for \QC to - handle. To improve the performance of full scans for tests, disable - test frameworks you do not use. + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Scan threads} + \li Set the amount of worker threads used when scanning for tests. + By default, \QC uses a quarter of the available logical CPUs. + \row + \li \uicontrol {Omit internal messages} + \li Omit internal messages. + \row + \li \uicontrol {Omit run configuration warnings} + \li Omit run configuration warnings for deduced configurations. + \row + \li \uicontrol {Limit result output} + \li By default, test result output shows a maximum of 100,000 characters. + \row + \li \uicontrol {Limit result description} + \li Set the maximum number of lines in the test result tooltip and + description. + \row + \li \uicontrol {Open results when tests start} + \li Show test results automatically when testing starts. + \row + \li \uicontrol {Open results when tests finish} + \li Show test results automatically when testing ends. + \row + \li \uicontrol {Open results only for unsuccesfull test runs} + \li Show test results only if thy contain failed, fatal, or + unexpectedly passed tests. + \row + \li \uicontrol {Automatically scroll results} + \li The view automatically scrolls to show the latest results. + \row + \li \uicontrol {Group results by application} + \li Group test results by the executable path that you use to run the + tests. This is useful if you have multiple test executables and run + them all at once. + \row + \li \uicontrol {Process arguments} + \li Pass arguments to the test executable that you specify in the + \l {Configure projects for running}{run configuration}. This is an + experimental feature that might cause the execution of the test + executable to fail. + \row + \li \uicontrol {Automatically run} + \li Automatically run all or selected tests after successfully building + the current project. + \row + \li \uicontrol {Timeout} + \li The maximum time in seconds to execute a test case. + \row + \li \uicontrol {Reset Cached Choices} + \li Sometimes, \QC cannot deduce which executable or run configuration to + use. If it repeatedly asks you to select the tests to run when trying + to execute tests, you can let it cache your choices and use them where + appropriate. \QC clears the cache when you switch to another project, + close the current one, or select this setting. + \row + \li \uicontrol {Active Test Frameworks} + \li Select tests for \QC to handle. To improve the performance of full + scans for tests, disable test frameworks you do not use. + \row + \li \uicontrol {Group} + \li Group related test cases for an active test framework. + By default, \QC groups tests that are in the same directory. + \endtable - To group related test cases for an active test framework, select the - \uicontrol Group check box next to the framework name in the - \uicontrol {Active Test Frameworks} list. - By default, \QC groups tests that are in the same directory. + To select the testing framework for the current project, go to + \uicontrol Projects > \uicontrol {Project Settings} > \uicontrol {Testing}. - By default, \QC uses a quarter of the available logical CPUs when - scanning for tests. You can set the amount of worker threads used - in \uicontrol {Scan threads}. + \section1 Qt Tests - \QC omits internal messages and run configuration warnings for - deduced configurations by default. To view them, deselect the - \uicontrol {Omit internal messages} and - \uicontrol {Omit run configuration warnings} check boxes. - - By default, test result output shows a maximum of 100,000 characters. The - view automatically scrolls to show the latest results. To display - full results, deselect the \uicontrol {Limit result output} check box. - To disable automatic scrolling, deselect the - \uicontrol {Automatically scroll results} check box. - - Set the maximum number of lines in the test result tooltip and description - in \uicontrol {Limit result description}. - - To group test results by the executable path that you use to run the - tests, select \uicontrol {Group results by application}. This is useful - if you have multiple test executables and run them all at once. - - To automatically run tests after successfully building the current project, - select them in \uicontrol {Automatically run}. - - Sometimes, \QC cannot deduce which executable or run configuration to use. - If \QC repeatedly asks you to select the tests to run when trying to execute - tests, you can let it cache your choices and use them where appropriate. \QC - clears the cache when you switch to another project, close the current one, - or select \uicontrol {Reset Cached Choices}. - - Select the \uicontrol {Process arguments} check box to pass arguments to the - test executable that you specify in the \l {Configure projects for running} - {run configuration}. This is an experimental feature that might cause the - execution of the test executable to fail. - - \section2 Specifying Settings for Running Qt Tests - - The code inside a benchmark test is measured, and possibly also repeated - several times in order to get an accurate measurement. This depends on the - measurement back-end that you can select in the - \uicontrol {Benchmark Metrics} group in \preferences > \uicontrol {Testing} > - \uicontrol {Qt Test}: - walltime, CPU tick counter, event counter, Valgrind Callgrind, and Linux - Perf. For more information, see \l{Creating a Benchmark}. + To set preference for Qt tests, go to \preferences > \uicontrol {Testing} > + \uicontrol {Qt Test}. \image qtcreator-preferences-testing-qttest.webp {Qt Tests tab in Testing preferences} - To receive verbose output when running benchmarks, select the - \uicontrol {Verbose benchmarks} check box. + The code inside a benchmark test is measured, and possibly also repeated + several times in order to get an accurate measurement. This depends on the + measurement back-end that you select in \uicontrol {Benchmark Metrics}: - To allow the debugger to interrupt Qt tests on assertions, select the - \uicontrol {Disable crash handler while debugging} check box. + \list + \li Walltime + \li CPU tick counter + \li Event counter + \li Valgrind Callgrind + \li Linux Perf + \endlist - To record information about signals and slots in the test log, select the - \uicontrol {Log signals and slots} check box. + For more information, see \l{Creating a Benchmark}. - To explicitly limit the maximum number of warnings in the test log, select - the \uicontrol {Limit warnings} check box and set the limit. Set it to 0 if - you want no limit at all. The default number is 2000. + The following table summarizes the other Qt test preferences. - To check for Qt Quick Tests that are derived from TestCase, select the - \uicontrol {Check for derived Qt Quick tests} check box. + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Disable crash handler while debugging} + \li Allow the debugger to interrupt Qt tests on assertions. + \row + \li \uicontrol {Use XML output} + \li XML output avoids parsing issues, but plain text is more human + readable. + \note Plain text misses some information, such as duration. + \row + \li \uicontrol {Verbose benchmarks} + \li Receive verbose output when running benchmarks. + \row + \li \uicontrol {Log signals and slots} + \li Record information about signals and slots in the test log. + \row + \li \uicontrol {Limit warnings} + \li Explicitly limit the maximum number of warnings in the test log. + Set the limit to 0 if you want no limit at all. The default limit + is 2000. + \row + \li \uicontrol {Check for derived Qt Quick tests} + \li Check for Qt Quick Tests that are derived from TestCase. + \note This feature is rather expensive and increases the scan time + significantly. + \row + \li \uicontrol {Find user-defined locations} + \li Parse messages for the following pattern and use it as location + information: \c {file://filepath:line} - \note This feature is rather expensive and increases the - scan time significantly. + where \":line\" is optional. - \section2 Specifying Settings for Running Google Tests + \note If the patterns are used in code, the location information + for debug messages and other messages might improve, at the risk + of some incorrect locations and lower performance. + \endtable - To specify settings for running Google tests, select \preferences > + \section1 Google Tests + + To specify settings for running Google tests, go to \preferences > \uicontrol {Testing} > \uicontrol {Google Test}. \image qtcreator-preferences-testing-googletest.webp {Gooble Test tab in Testing preferences} - To run disabled tests, select the \uicontrol {Run disabled tests} check box. + The following table summarizes the Google test preferences. - To turn assertion failures into C++ exceptions, select the - \uicontrol {Throw on failure} check box. + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Run disabled tests} + \li Execute disabled tests during a test run. + \row + \li \uicontrol {Throw on failure} + \li Turn assertion failures into C++ exceptions. + \row + \li \uicontrol {Break on failure while debugging} + \li Turn failures into debugger breakpoints. + \row + \li \uicontrol {Repeat tests} + \li Run several iterations of the tests. + \row + \li \uicontrol Iterations + \li The number of times to run the tests. + \row + \li \uicontrol {Shuffle tests} + \li Make sure that the tests are independent and repeatable by running + them in a different order each time. + \row + \li \uicontrol Seed + \li The seed for initializing the randomizer. The value 0 generates + a seed based on the current timestamp. + \row + \li \uicontrol {Group mode} + \li Group Google tests by using a \uicontrol {GTest Filter}. + \row + \li \uicontrol {Active filter} + \li The GTest filter to use. + \endtable - To turn failures into debugger breakpoints, select the - \uicontrol {Break on failure while debugging} check box. - - To run several iterations of the tests, select the \uicontrol {Repeat tests} - check box and enter the number of times to run the tests in the - \uicontrol Iterations field. To make sure that the tests are independent and - repeatable, run them in a different order each time by selecting the - \uicontrol {Shuffle tests} check box. Set the seed for initializing the - randomizer in the \uicontrol Seed field. The value 0 generates a seed - based on the current timestamp. - - - To group Google tests by using a GTest filter, select - \uicontrol {GTest Filter} in the \uicontrol {Group mode} field, - and specify the filter in the \uicontrol {Active filter} - field. For more information about GTest filters, see + For more information about GTest filters, see \l{https://github.com/google/googletest/blob/master/docs/advanced.md#running-a-subset-of-the-tests} {Running a Subset of the Tests}. - \section2 Specifying Settings for Running Boost Tests + \section1 Boost Tests - \list 1 - \li To specify settings for running Boost tests, select \preferences > - \uicontrol {Testing} > \uicontrol {Boost Test}. - \image qtcreator-preferences-testing-boosttest.webp {Boost Test tab in Testing preferences} - \li In the \uicontrol {Log format} field, select the error report - format to specify the type of events to record in the - test report. - \li In the \uicontrol {Report level} field, select the verbosity level - of the test result report. Select \uicontrol No if you do not want - a report. - \li Select the \uicontrol Randomize check box to execute the tests in - a random order, using the seed specified in the \uicontrol Seed - field for initializing the randomizer. The value 0 means no + To specify settings for running Boost tests, go to \preferences > + \uicontrol {Testing} > \uicontrol {Boost Test}. + + \image qtcreator-preferences-testing-boosttest.webp {Boost Test tab in Testing preferences} + + The following table summarizes the Boost test preferences. + + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Log format} + \li The type of events to record in the test report. + \row + \li \uicontrol {Report level} + \li The verbosity level of the test result report. Select \uicontrol No + if you do not want a report. + \row + \li \uicontrol Randomize + \li Execute the tests in a random order. + \row + \li \uicontrol Seed + \li The seed for initializing the randomizer. The value 0 means no randomization, the value 1 uses the current time, and any other value generates a random seed. - \li Select the \uicontrol {Catch system errors} check box to catch - system errors. - \li Select the \uicontrol {Floating point exceptions} check box to - detect floating point exceptions. - \li Select the \uicontrol {Detect memory leaks} check box to detect - memory leaks. - \endlist + \row + \li \uicontrol {Catch system errors} + \li Catch or ignore system errors. + \row + \li \uicontrol {Floating point exceptions} + \li Detect floating point exception traps. + \row + \li \uicontrol {Detect memory leaks} + \li Detect memory leaks. + \endtable - \section2 Specifying Settings for Running Catch2 Tests - \list 1 - \li To specify settings for running Catch2 tests, select - \preferences > \uicontrol {Testing} > \uicontrol {Catch Test}. - \image qtcreator-preferences-testing-catchtest.webp {Catch Test tab in Testing preferences} - \li Select the \uicontrol {Show success} check box to show succeeding - expressions as well. By default Catch2 will print only fails. - \li Select the \uicontrol {Break on failure while debugging} check box - to turn failures into debugger breakpoints. - \li Select the \uicontrol {Skip throwing assertions} check box to skip - any assertion that test for throwing an exception. - \li Select the \uicontrol {Visualize whitespace} check box to turn - whitespace into escape sequences. - \li Select the \uicontrol {Warn on empty tests} check box to get a - warning when a test case does not check any assertion. - \li Select the \uicontrol {Abort after} check box to abort the test - after the number of failures specified inside the spin box. - \li Select the \uicontrol {Benchmark samples} check box to specify - the number of samples to collect while running benchmarks. - \li Select the \uicontrol {Benchmark resamples} check box to specify - the number of resamples to use for statistical bootstrapping after + \section1 Catch2 Tests + + To specify settings for running Catch2 tests, go to \preferences > + \uicontrol {Testing} > \uicontrol {Catch Test}. + + \image qtcreator-preferences-testing-catchtest.webp {Catch Test tab in Testing preferences} + + The following table summarizes the Catch2 test preferences. + + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Show success} + \li Show succeeding expressions as well. By default Catch2 prints only + failed expressions. + \row + \li \uicontrol {Break on failure while debugging} + \li Turn failures into debugger breakpoints. + \row + \li \uicontrol {Skip throwing assertions} + \li Skip assertions that test for thrown exceptions. + \row + \li \uicontrol {Visualize whitespace} + \li Turn whitespace into escape sequences. + \row + \li \uicontrol {Abort after} + \li Abort the test after the number of failures specified inside the box. + \row + \li \uicontrol {Benchmark samples} + \li The number of samples to collect while running benchmarks. + \row + \li \uicontrol {Benchmark resamples} + \li The number of resamples to use for statistical bootstrapping after benchmarking. - \li Select the \uicontrol {Benchmark confidence interval} check box - to specify the confidence interval for statistical bootstrapping. - \li Select the \uicontrol {Benchmark warmup time} check box to specify - the warmup time for each test before benchmarking starts. - \li Select the \uicontrol {Disable analysis} check box to disable - statistical analysis and bootstrapping. - \endlist + \row + \li \uicontrol {Benchmark confidence interval} + \li The confidence interval for statistical bootstrapping. + \row + \li \uicontrol {Benchmark warmup time} + \li The warmup time for each test before benchmarking starts. + \row + \li \uicontrol {Disable analysis} + \li Disable statistical analysis and bootstrapping. + \endtable \section2 Specifying Settings for Running CTest-Based Tests - \list 1 - \li To specify settings for running CTest-based tests, select - \preferences > \uicontrol {Testing} > \uicontrol {CTest}. - \image qtcreator-preferences-testing-ctest.webp {CTest tab in Testing preferences} - \li Select the \uicontrol {Output on failure} check box to show test - specific output if a test fails. Contrary to the CTest default - this is enabled by default. - \li Select \uicontrol {Schedule random} to execute the tests in - random order. - \li Select \uicontrol {Stop on failure} to automatically stop the - test execution on the first failing test. - \li In the \uicontrol {Output mode} field, select the verbosity level - of the CTest output. - \note This only influences the output on the text display. - \li Select \uicontrol {Repeat tests} if you want to re-run tests - under certain circumstances. - \li In the \uicontrol {Repetition mode} field, select the mode for - re-running tests. Set the maximum count for repeating a test in - the \uicontrol {Count} field. - \li Select \uicontrol {Run in parallel} to run the tests in parallel - using the specified number of \uicontrol {Jobs}. - \li Select \uicontrol {Test load} to limit the parallel + + To specify settings for running CTest-based tests, go to \preferences > + \uicontrol {Testing} > \uicontrol {CTest}. + + \image qtcreator-preferences-testing-ctest.webp {CTest tab in Testing preferences} + + The following table summarizes the CTest preferences. + + \table + \header + \li Setting + \li Value + \row + \li \uicontrol {Output on failure} + \li Show test specific output if a test fails. Contrary to the + CTest default this setting is on by default. + \row + \li \uicontrol {Schedule random} + \li Execute the tests in random order. + \row + \li \uicontrol {Stop on failure} + \li Automatically stop the test execution on the first failing test. + \row + \li \uicontrol {Output mode}, + \li The verbosity level of the CTest output. + \note This setting only influences the output on the text display. + \row + \li \uicontrol {Repeat tests} + \li Re-run tests, as determined by \uicontrol {Repetition mode}. Set the + maximum number of times for repeating a test in \uicontrol {Count}. + \row + \li \uicontrol {Run in parallel} + \li Run the tests in parallel using the specified number of + \uicontrol {Jobs}. In \uicontrol {Test load}, limit the parallel execution. CTest will not start a new test if it would cause the CPU load to pass the threshold set in \uicontrol {Threshold}. - \endlist + \endtable - \section1 Viewing Test Output + \sa {Test}{How To: Test}, {Test Results} +*/ - The \l{View output}{Test Results} view shows Qt and Qt Quick test results +/*! + \page creator-test-results.html + \previouspage creator-reference.html + + \ingroup creator-reference-output-views + + \title Test Results + + \brief View test results. + + View and filter test results in the \uicontrol{Test Results} view. + + \image qtcreator-test-results.webp {Visual display in the Test Results view} + + \section1 Qt Test Output + + The \uicontrol{Test Results} view shows Qt and Qt Quick test results in XML format and other test results in plain text format. - \section2 Qt Test Output - XML can be parsed more easily and reliably than plain text. However, if a Qt or Qt Quick test crashes, it might not produce complete XML code that can be parsed, which might lead to information loss. You might see the lost information when viewing the results as plain text. - To view the - results of Qt and Qt Quick tests as plain text, select \preferences > - \uicontrol {Testing} > \uicontrol {Qt Test}, and - then deselect the \uicontrol {Use XML output} check box. Then select the - \inlineimage icons/text.png - (\uicontrol {Switch Between Visual and Text Display}) button in + To view the results of Qt and Qt Quick tests as plain text, go to + \preferences > \uicontrol {Testing} > \uicontrol {Qt Test} and then clear + \uicontrol {Use XML output}. Then select \inlineimage icons/text.png + (\uicontrol {Switch Between Visual and Text Display}) in \uicontrol {Test Results} to switch to the text display. - \section2 Summary of Messages + \section1 Summary of Messages - The following table lists the messages that \uicontrol {Test Results} - displays: + The following table lists the messages that \uicontrol {Test Results} shows. \table \header @@ -685,11 +841,17 @@ \endtable + \section1 Filtering Test Results + To view only messages of a particular type, select - \inlineimage icons/filtericon.png - (\uicontrol {Filter Test Results}), and then select the types of messages to - show. To show all messages, select \uicontrol {Check All Filters}. To - deselect all message types, select \uicontrol {Uncheck All Filters}. + \inlineimage icons/filtericon.png (\uicontrol {Filter Test Results}) and + then select the types of messages to show. + + To show all messages, select \uicontrol {Check All Filters}. + + To deselect all message types, select \uicontrol {Uncheck All Filters}. + + \section1 Blacklisting Tests Since Qt 5.4, you can add a BLACKLIST file for tests. It is mainly used internally by the Qt CI system. @@ -712,4 +874,6 @@ \li Blacklisted test case passed even though it was expected to fail. \endtable + + \sa {Test}{How To: Test}, {Test Results} */ diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc index 3696b292635..a715f171cb5 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc @@ -93,6 +93,18 @@ \generatelist creator-how-to-get-help + \section1 Test + + \QC supports both \e {code based tests} and \e {build system based tests}. + Code based testing offers special handling for particular testing + frameworks that strongly ties to the underlying code models or + specialized parsers. Build system based testing is independent from any + testing frameworks. It retrieves information directly from the underlying + build system and uses it or even the build system as such to execute the + respective tests. + + \generatelist creator-how-to-test + \section1 Use \QC \generatelist creator-how-to-use diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc index eb0bcf8ec36..3a74a671e24 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc @@ -27,7 +27,7 @@ \image qt-app-dev-flow.webp {Application development life-cycle} \caption Application development life-cycle - \section1 Projects + \section1 Managing Projects First, you need a \e project. \QC relies on a separate build system, such as CMake, qmake, or Qbs for building the project. From the build system, \QC @@ -63,12 +63,12 @@ For more information, see \l{Manage Projects}{How To: Manage Projects}. - \section1 User Interfaces + \section1 Designing User Interfaces \image heartgame-start.webp {Heart Rate Game} - To create intuitive, modern-looking, fluid user interfaces, use \l{Qt Quick} - and \l{Qt Design Studio Manual}{\QDS}: + To create intuitive, modern-looking, fluid user interfaces (UI), use + \l{Qt Quick} and \l{Qt Design Studio Manual}{\QDS}: \list \li \l {\QMLD} @@ -101,7 +101,7 @@ For more information, see \l{Design UIs}{How To: Design UIs} and \l{UI Design}. - \section1 Code + \section1 Editing Code Writing, editing, and navigating in source code are core tasks in application development. Therefore, the code editor is one of the key components of \QC. @@ -116,13 +116,13 @@ such as Python, for which a \e {language server} is available that provides information about the code to IDEs. - \section2 Find + \section2 Finding Use the incremental and advanced search to search in currently open projects or files on the file system or use the locator to browse through projects, files, classes, functions, documentation, and file systems. - \section2 Refactor + \section2 Refactoring Code \e {Code refactoring} is the process of improving and simplifying code without modifying the existing functionality of an application. Find @@ -137,7 +137,7 @@ \li Simplify code structure \endlist - \section2 Configure the Editor + \section2 Configuring the Text Editor Configure the text editor to suit your specific needs. Change the fonts, colors, highlighting, and indentation. @@ -147,7 +147,7 @@ For more information, see \l{Edit Code}{How To: Edit Code} and \l{Editors}. - \section1 Build, Deploy, and Run + \section1 Building, Deploying, and Running Applications Run and deploy Qt applications that you build for different target platforms or with different compilers, debuggers, or Qt versions. @@ -182,7 +182,7 @@ For more information, see \l{Connecting Devices} and \l{Deploying to Devices}. - \section2 Preview QML + \section2 Previewing QML Use the QML live preview to preview a QML file or an entire Qt Quick application on the desktop, as well as on Android and embedded Linux @@ -191,7 +191,7 @@ For more information, see \l{Validating with Target Hardware}. - \section1 Debug + \section1 Debugging Applications A debugger lets you see what happens \e inside an application while it runs or when it crashes. A debugger can do the following to help you find errors @@ -214,7 +214,7 @@ For more information, see \l{Debugging}. - \section1 Analyze + \section1 Analyzing Source Code Devices have limited memory and CPU power, so you should use them carefully. \QC integrates code analysis tools for detecting memory leaks, profiling @@ -227,17 +227,42 @@ For more information, see \l{Analyzing Code}. - \section1 Autotest + \section1 Running Tests - Create, build and run Qt tests, Qt Quick tests, Google tests, and Boost tests - to unit test applications and libraries. + \QC supports both \e {code based tests} and \e {build system based tests}. + Code based testing offers special handling for particular testing + frameworks that strongly ties to the underlying code models or + specialized parsers. Build system based testing is independent from any + testing frameworks. It retrieves information directly from the underlying + build system and uses it or even the build system as such to execute the + respective tests. + + \QC integrates the following testing frameworks for unit testing + applications and libraries: + + \list + \li \l{https://www.boost.org/doc/libs/1_81_0/libs/test/doc/html/index.html} + {Boost.Test} + \li \l{https://github.com/catchorg/Catch2}{Catch2 test framework} + \li \l{https://github.com/google/googletest}{Google C++ Testing Framework} + \li \l{Qt Quick Test} framework + \li \l{Qt Test} framework + \endlist + + In addition, \QC offers build system based support for + \l{https://cmake.org/cmake/help/latest/manual/ctest.1.html}{CTest}. + + You can use \QC to create, build, and run code based tests for your + projects. + + \image qtcreator-autotests.png Map AUTs (Application Under Test) to \QC and run Squish test suites and cases from it. - For more information, see \l{Running Autotests} and \l{Using Squish}. + For more information, see \l{Test}{How To: Test} and \l{Using Squish}. - \section1 Publish + \section1 Publishing Applications Create installation packages for mobile devices that you publish to application stores and other channels. You must make sure that the diff --git a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc index c26df6eb3e5..1fe8e41e287 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc @@ -37,7 +37,7 @@ \section1 Preferences - Set prefecerences that apply globally to all projects. + Set preferences that apply globally to all projects. \annotatedlist creator-reference-preferences diff --git a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc b/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc index 26ef6701d69..34297d34fa5 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc @@ -12,7 +12,7 @@ \page creator-testing.html \nextpage creator-debugging.html - \title Testing + \title Debugging and Analyzing \image front-testing.png @@ -35,11 +35,6 @@ from \QC. However, the QML Profiler is installed as part of \QC for profiling Qt Quick applications. - \li \l{Running Autotests} - - Create, build and run Qt tests, Qt Quick tests, Google - tests, and Boost tests using \QC. - \li \l{Using Squish} Map AUTs to \QC and run Squish test suites and cases from it. diff --git a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc index d03263d4625..084bc90c1ab 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-files-creating.qdoc @@ -74,8 +74,8 @@ \li Empty Nim source and script files. \endtable - \sa {Add Files}{How To: Add Files}, {Create UML-style models}, - {Use project wizards} + \sa {Add Files}{How To: Add Files}, {Add tests to existing test projects}, + {Create UML-style models}, {Use project wizards} */ /*! diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc index 60fb9686fd6..914516417a1 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc @@ -168,8 +168,8 @@ \uicontrol Impl there. \sa {Assign keyboard shortcuts}, {Activate kits for a project}, - {Create files}, {Create Projects}{How To: Create Projects}, - {Creating Projects} + {Create files}, {Test}{How To: Test}, + {Create Projects}{How To: Create Projects}, {Creating Projects} */ /*! diff --git a/doc/qtcreator/src/projects/creator-projects-running.qdoc b/doc/qtcreator/src/projects/creator-projects-running.qdoc index 43d80f08c8d..0b39d0d7077 100644 --- a/doc/qtcreator/src/projects/creator-projects-running.qdoc +++ b/doc/qtcreator/src/projects/creator-projects-running.qdoc @@ -49,7 +49,7 @@ \section1 Select run targets If your project has several run targets defined, such as - \l{Running Autotests}{tests}, you can select them in the kit selector. + \l{Build and run tests}{tests}, you can select them in the kit selector. \image qtcreator-kit-selector-run-targets.png {Run targets in the kit selector} diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 1f5acccca57..c38beb825d3 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -68,7 +68,7 @@ \li \l{Building Applications for the Web} \endlist \endlist - \li \l{Testing} + \li \l{Debugging and Analyzing} \list \li \l{Debugging} \list @@ -112,7 +112,6 @@ \li \l{Analyzing Code with Cppcheck} \li \l{Visualizing Chrome Trace Events} \endlist - \li \l{Running Autotests} \li \l{Using Squish} \endlist \li \l{How To} @@ -157,6 +156,8 @@ \endlist \li Read Documentation \generatelist creator-how-to-get-help + \li Test + \generatelist creator-how-to-test \li Use \QC \generatelist creator-how-to-use \li Use the UI diff --git a/doc/qtcreator/src/qtcreator.qdoc b/doc/qtcreator/src/qtcreator.qdoc index f828eb6995c..ddc9b74cca6 100644 --- a/doc/qtcreator/src/qtcreator.qdoc +++ b/doc/qtcreator/src/qtcreator.qdoc @@ -64,11 +64,10 @@ \li \inlineimage front-help.png \li \inlineimage front-advanced.png \row - \li \b {\l{Testing}} + \li \b {\l{Debugging and Analyzing}} \list \li \l{Debugging} \li \l{Analyzing Code} - \li \l{Running Autotests} \li \l{Using Squish} \endlist \li \b {\l{How To}} @@ -79,6 +78,10 @@ \li \l{Design UIs} \li \l{Edit Code} \li \l{Manage Projects} + \li \l{Read Documentation} + \li \l{Test} + \li \l{Use \QC} + \li \l{Use the UI} \li \l{How To}{See More...} \endlist \li \b {\l{Reference}}