From a4367deb37b79da93f63e06f64aa07b08dae2fc4 Mon Sep 17 00:00:00 2001 From: Artur Ayukhanov Date: Thu, 6 Jul 2017 16:48:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D1=80=D0=B6=20#678=20c=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=82=D0=BA=D0=BE=D0=B9=20develop=20+=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE?= =?UTF-8?q?=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B8=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\207\320\265\321\202\320\260AllureXML.epf" | Bin 11197 -> 11303 bytes ...1\207\320\265\321\202\320\260JUnitXML.epf" | Bin 10511 -> 11251 bytes ...02\321\207\320\265\321\202\320\260MXL.epf" | Bin 9093 -> 9289 bytes ...0\260\320\273\320\276\320\263\320\260.epf" | Bin 8475 -> 9299 bytes ...0\244\320\260\320\271\320\273\320\260.epf" | Bin 13181 -> 13735 bytes ...0\244\320\276\321\200\320\274\320\260.bsl" | 9 + .../maps.txt" | 2 +- .../4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" | 16 +- .../und/version" | 4 +- .../und/versions" | 2 +- ...0\244\320\276\321\200\320\274\320\260.bsl" | 37 ++ .../ObjectModule.bsl" | 34 ++ .../maps.txt" | 2 +- .../4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" | 37 ++ .../und/versions" | 2 +- ...0\244\320\276\321\200\320\274\320\260.bsl" | 6 + .../maps.txt" | 2 +- .../und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" | 20 +- .../und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" | 11 +- .../4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" | 53 ++- .../und/e723b36e-7faa-4345-bf5b-763f60cd5663" | 4 +- .../e723b36e-7faa-4345-bf5b-763f60cd5663.0" | Bin 1776 -> 1788 bytes .../und/version" | 4 +- .../und/versions" | 2 +- ...0\262\320\260\320\275\320\270\321\217.mxl" | Bin 1776 -> 1788 bytes ...0\244\320\276\321\200\320\274\320\260.bsl" | 116 ++++- .../maps.txt" | 2 +- .../b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" | 127 +++++- .../und/version" | 4 +- .../und/versions" | 2 +- ...0\244\320\276\321\200\320\274\320\260.bsl" | 84 ++++ .../maps.txt" | 2 +- .../d75f146d-5027-4604-80fd-3b704ddd86a8.0" | 84 ++++ .../und/versions" | 2 +- ...0\244\320\276\321\200\320\274\320\260.bsl" | 395 +++++++++++++++--- .../form" | 78 ++-- .../module.bsl" | 41 +- src/xddTestRunner/ObjectModule.bsl | 2 +- src/xddTestRunner/maps.txt | 2 +- .../ed07b230-8bf7-4423-b861-a31f23c7471f.0 | 395 +++++++++++++++--- src/xddTestRunner/und/versions | 2 +- xddTestRunner.epf | Bin 80771 -> 83406 bytes 42 files changed, 1388 insertions(+), 197 deletions(-) diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML.epf" index b801532853866b30fc9518993ab1eadd1d2c1b31..5b00d379e7b187b618515d5b9e573affaf99d5b8 100644 GIT binary patch delta 2389 zcmZ9Nc{~%0AIF!WIVO`r=Gf58O=87dv8a%18Rneh!IHTRLqn~{kid`BY6P8K;a+8BLIM+AN}cDkN^Nk=^3-?7+3>xy0XQD3-JH@+?gvwK=5DYD>#$u zUxxk_Y)xMh7N%VAk=6Jaogbj<^G{^K{2h+Y){>V+JN6iMYaDZU2_(R%BR`?k70>VTOmg60oxl5DEgt6iZI>Mq(stl9DIblF?lUQ9rdy6dh=NbXHv( z+g`GRl!_c%PZ~9wR-s;UD@4ezUHkx0UJqo3qo}T^$-+(Mwwz*PTVeSJpi5w;e!EY9 zbIgfD@R)EsWCyTA0a}o$-;Ytr?psjl*m&ipdB{XlYhg}&J>M-##-~0kDzs;_;l#1& zke5~xv|H0=M2#6l*IpEF6K~r5dZH6oSBzTG?OWY;3*vuY$ofk=8rUAmH;+o3wcB~O z&r>hm8g?Xp1Ea2Hgz)D^zR;9Snwq*IhRwdQaqZc4<;n$5bVT;1NOtwJjlS3&(X@z! zj`tu1>cQMp!nWIW%4VT(S98n&CJ4Y&hVko?`kW9z^h{a>-MZ_)@KNv`y5LDM-XiX} zh}6(F>{PCMBx|5A<`2PQ?RBwGs`sBG)Pj>r$J?b@LO>s!$h-9U(5n95@fWqA5iEdj z`20tWG2W$*8Hz#`soSQX;k2*kYz`Q$hlZp4*^B1{xiCa?3YGYg?-CYUUm=nxhfW6e z_K;B%W17v18jO(7E|qEEscm#~M)8gwp_43tnlxP$)97?|DLIsOmkFQtqLZLu%5bDw!{E>NqPHynkx z{&U(n*?X0;+PN>TawK?~hr0V9x0ck{{;MSdciQgD{GPa-zqN++*-pXdXZWJq2lLwc zefnoTcB1{mGrKhfNeq2dyT|91&eDD(2CyRCFKW&^gA{!&G1v%Bli6&G)m@2{kKRV$ ztn|L8$R$h_MxKDd!WEk$N^HrP;{ZhF*12-Qd*3MlS_%sof0K7FmpkOiWG_cZYaw|{ z_L?Oj_x4Cl@0!PZdN)1fT`aCtR?$%DV z6Axmhbq5}ti>i(Ph2doorc+m#M|<*oYYTWj#11yc&He)X4OLw2d)G4Jv91m4i6}Ox zAeh2IFM6WfB|5Ioz#O4Qax>_Bspv8WRUyla$41mB&DC4^M%njD;38Akq(8hHaxQBl`HHmG_Hk}BqHCTeCp6n1{S z5h}EA*o?HM&Tz=RLNA8DULK0!3G{g#RIWIf2-Ue6T++CV<3svGf`hWuk-q}s&^ZDD}HBY@?tN9*$tyvpH81&j+J3{rp9w(X;mX?*j#8gG}T*lfG4A zHJ2VKnRaExm_2ydT^Tvyu4)zDdU>W|MfniY29YqA<`Nrw;A2M@tD(o`o{|IHh9&zC z+)gl>)gnAz4#BL^hcm0nlo0t!-2E@;SsMX>oPvC}g5Im8755w0yo_x9*Fw-|b34|i zH=4P=cs1P5S?N7zHa{sDvhgzOYIVzJz4-3cvMU%JIhCa{C%(*sfV~C=M8!pn^rbgJ zL0tbiS_~ra-~R{4as5ZN$lLr!(Pa?uV_x)l_$f(p6Pa>e{YLG5W?ou?P=<$xd!Reh z>w0f5kID03#PTt^Iv0rUh7|kv=8u6>^jzeLW1c@oPE&04((sy~>E0@J$hdp{ay)oQ zd%Gx4(N@&k+m2wtF^NRlrn}&vzsr2v|Lc%`v*@7y=9$OVrU@SKW@YeuhEU4ZzLWXt z0em9U4y3Otkig%_2VXqp?#ly#+DV3`51X;Pq z5mKx@QV$j!jXQbE^b;(k>}f99nl?Mv7B{R6@Rx+kY=JlHTTVwqq!p+6(1aq+4TK9VRJc{kQmtE|wQd(*2j? zN^Zd3ijlv=4PO%-gDL5+zUFjogcXe6)Q7T1;scJZdkfgRSP%?Yhlbx8w@~?77r3M6 XIpB(m@=2D`#Zg@|oz+eEpN0JoOT}D1 delta 2278 zcmZ9Nc{~%01ID*GA{KLPIdY8^6>|)+Fcc~GFvN)mYE2PgmPr%3c0V` zxzAj+#etce((EyKF{a*ex5&`f1jte^)|^qC>lcLCkw;zk&_WMDu5#otM1f>S~NYRF8m zDS3&Pm!PaFq4-;1koNo<-m)?2gId)F%Qh5Hqwi-*nI3KNdwHDh7ESur|}Dh_)= z`1RoIZ&|^m_`@}Por2O}C*H`3pw3JW?_1~5TzbEM`_yH&-Ac_A1bI_CfgF#j@z$h( zG%6HN2M}TWi@sVA@>PZf%uaB)vkQnF9bIL^!(v1oU_Y;-^+6Dp$5D$HXY#$gT zQiaBd(gr(tk3;5$R1UaWSL9ldfw3k&i7vX&{Csa|C^^(-X$3sh3IdWCP+qr=14yXu z^J8%foFT;7NlgYUCh{&Ry63xTnqgQdXBr0P@@19;+NJPGDZsLtj|SaLOAFC;4wYcICXPV=45$V6klx zF7w$#X9MZE+>iOgk%jT0FT>3d!n$Q^XtS;H1K`%o(*dq6$k{N%ZD)GA)2+AzqE9j& zgk~R^(=E!*eFL1Agw+u*iqFe=Mi7%q%^2X^b%3ZqO}$7W!9EBft}D#5HiInX7-Ja* zE=mWj+PD5t<=|!tgz&NoaX>=zAg1>$8BnW*ZwxSG5uCrsdf=F=y_Vy&g0$!PS*`SA znJ=W^f*EE_Qf6t?y1m%nceId*eSr#$cc|_@#__gFJ!BUW3G6u1=n~#68T0Y|VftS)r2J4kYHcoAXRc-5u!X!|ES8BKEe2AY!7E6b+C{qmBC)WJKxfEP90l|rm zia@(&(>-U)^w)xgnTJ;L(@6?Q4p?X|?@j<*;07V*+=c}vpxHzH<)ga0WEOtC1Wf7b zU8qZF_Y3i;ILXCzg|nCG zoDrW0mbL=Cqau$h@4r&@_C9Oyj%ooI^H?>DO4?LJdOsM^SC?wXX%KynMf1yE&!^M% zlgyLJOHD|Vs5hvyc(%vfX84ttM{a@7Wo4(hg&1Af%#*I(_$V3`nPrfBS?`-2He18~L#Zb$QNQeXw7}mM{aQonW+>QekqD(yEd`?zuo!Pfa3)^>BJv8b>>LRcFmH3I$dg(sIRq#wfdELoPt$xmjvK{r;y5hhLDk6)pQyESR^jO5i zDtw+q%gf?LNMmJva~5!P6;^R9{b8(`KSQRJ+I{INy{)LCA>02s{Oxv{kd3`vH+b1BWLu6`p@fU6>BB=IMkUkpBi6L+Zn^Mp zZ!=U?)BPE5Ex`e8UK&r1@va2fp;|BF`sL0ftmyO!J%`Ct*6S1}HVtH~Uylye*HSy~gOjwa*}4N;V_*OI+sZT&O4o;)PT<%_ic zbO{V|FDXDQkJ`)h;%e5EV%g%HJAvb|8Ly`Rl!|OEHpwVmme!2Gcw;Qq){BvL*;ugt z_P#_@35b{e*(XaQSh@fu2#o4iTQ11B0$B3vY*k6`my@|xXBoR%ooaKZCgVx*Q}F1* zssw1MH>g2{ip)x(ElCC%J;8dZ2nNciiNqAGNW!?07A)fIe0UpZueAisOUJ}gC9{I+ z-JPtJmm)Va4yxX3Uf97n*vfydnF7lCobhY&AmS2o99V?R#NTb#mD^ff9onX$1<%u; zLLpq>WXOeoF6f`6w@KkZ|Ec6<%>Pr7?;)gsN@Otmaj>d_&8rkzMw0Fs1)DSUdBl5Q zN+S>X5Y9>NJ|*<;A@bTOIKlnTk0~iC{{N39rt12ONpS0LGz(uGA9qS}ZKPCmm8BM2 zV7J|_Z5h^M_SJA6_q4RymG^ePF`?G2c9&+DTlFP+gensvxZ2c?m9(B39d{GE6N~@4|7mw9 z+1EMCu5WRwf2=CvLGeWTj8XDPAPOZFOyhztJnzG;7B25^e$O@`ZB=R=HsXpN9S=U& z%NkOmx>57_!>sn+{^Ir~<*R2{jmCHXli&!RSXH>|%6LtnHs|33!h=a)QfMDLt%gq= UhrSjw#h~gVWDfSlQ(grA4QCfES^xk5 diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML.epf" index d2cc612cbc652a9c88acc72132a95d90923895b8..1827c3e336e6c8a53e8bfce2df53933640d48d53 100644 GIT binary patch delta 4430 zcmZ9PWmgmoyM>1mWQI?nXdIQ9+PS z;eDR-o)71^*V^m8*7XPWx>NK|V5u&m@{a+4!GC&xe~)lr1pwav(|>uK4FDiy|1Wbv z006gt`mayo0st1c8j86=M4{!zHGT5ffd9GZRggT+Uy7474g3GA3{Fy=3@Qo|gc!dl zGylK&7sMR@8)hQHL6bdgIu*)0291!IMdhkQTgku^hlIym7~7&DU7ViZ?tDWl0uRX6 ztyNURnzZH>QSoLX@Z8eUv}^7sr1Z|JliU+BYF5R&69;R1z!lso+w;$>LR&$*lDiWV z*M%it0#VDqIv{w6?!2>|$?CJ+JaoTe=b?Z+w#F61W^|ZS3eW3EuDqA~!wwrjB`p0AFli=eq}FZ^H$M3lJ{9Rc2JSgsX7M?5gGk96($_~nFliCx5+V} z_gD)w%l#RaHHe6*%M#2J!#LQfvm=evHMnV1hKP}m@M~WxP6@DH5#g@#_kd%VjTsah z@ZhPzb`e2Tt0x1MvWS|cBkGS@@VFoM~In^84cby7~>1W%ndYpY>7ffI(sd6QH* z77dxEIk2Y0^|MF*av2A)^eEI2M`foaCg}*!^v5~~sO~O+VTVS)CCZI)J|~>;9g%E{ z0r-s=%-jRgTjW0B^xN_K5v3&WOublP4pad711k`80Q?_rt{s-h_fvtSGYod7Uu{;RPRx~oawwlT-n5ij9v!n8%p^q^#Kh~k)hiX?2XY?v)FnBRB% z8iFvCeNE4UE9kuan7i6!hD3>I zLB_&3qxD|iElJt{t!ovpp&OtFqi)hxFD=3*?fhulsUFQ?L~-d=-*Y!RdeQ_v24ROj znh}0oHi=I%DPGUgDSXe5+a@aP{8$P#W96R^9+<>_&l17|>pr(zDqh8Ls;vl9m;vjrf3e;*rVkIG{N(ABg{m4AsqWOe*`14K#2-4 z?8mj>_vOa?j}po9_b+m^d1XyU1`*PPRFQQ2aKOC^K^#bwAzu=`M5clf-X`7&e>JJT z^YR$9+(%Qv7fnGEt00lT)VHP>-o@Y3vNfsscnO7%7EC5;0@%GJU%y~3+qz19u#;N5 zdHD7b7cr3#DLyTs9notEoLiros6XKEabW8LhU{DBc8`J+@vv^t__fVPS;Xos{9r5b z#`zvUi8S#$%d}_7%#Nt3Q@;QQ=A1?2$jL2v_t6*%rR$_O7wH&>H>S|A7wkgi^srfO9Bv}FjIO12%wRXL zgk+zS;5<<)<2Ri-MW_CphCLGA23ZRjxUrR{p-8c=-id{qt(h4EVmyg*VbH|ksXpiQ zVw(jkS&E`lV|!&TWoMez+Z>HSXzThrHXNlI32agq2cn70S@H5siz>yzCd$dJDV2mT zK}}h_I-29YbCs9!!jGyeD$@u-gIsFuAktYwo}##;a0%XJ(#1&naYxo$%Vu%1yo3Sx z3%OcttrWf=B}a>+2#Yqlggu{5o#vwcq~|@Mz8VEk zL^_>QDau62JZ~~7>1pPIYLTdEqGt}q49f-!Mbn7Wf`S|xhC0Y5HOb++mScT3{4hB1 z$}qdSV$hHG$r^EMUZjmfD6P50_UY_ipR*CQ$ElZy?qc~z1i&B2>iJefXWZY2o=?_` zXA~JVIy=x*Oat zMPh{Xk$D{zFr3edB7na6ClptE)c|Bcj^$f5AP`T)f4tAWxNM>+n>pcbQ==FA_=^ve zcj8-F;|7vP%yH>Sz>^-rVHhAyJBhDi6ju!SxK8QCL7lN<6mGelWh@0OAj^7}O6MLs zV-lC?uNhsSeU1=^{RjTfg#I$qa5q)1U5e`wVy0o%!Y> z^3F9apMl~WpC-p|ukft(nK+qw(DCB=mR~tcRFv**@}z%hvKBC7P2tY!%l1!2xRgj% z{IG%DvRNZLH(cw}8!CV1J-AxUm}DdGg^`-5gI0^7o-z68Y?|1SPS)2BaRdaTz*A90 z)eiB9a*j7y6^7PCe8XQgPH5BD8*lp{s?^l#pv7CoeyuGvW}=(X`S5d&&sOH!HUlKl z$Yla$kxOM9CR6;ivg`sYWpI@`_Vq7PGBxUq7wPp6)6301#BW6CpGCg)R3Df>V%s|g zV4IbKYeM8XQoAC%NZgE=(h!b;0aBG}h@EEdozI@nH3{0Ij1Xg%rhTk})WW~Xnv9fK zmRD7pdipgFc6@;HS-d_5Wf3KLl&INC&zhM!6D;DjW49KmOq`->QXyN|?`65=RbRm^ zf}02$%Mvibg3-~{ME|?}_ajr(i5p(uPy!OHOkhV|<^%y2O!NbKTSOGC!m8GH%P^8v zt%vhbTG4Vq>*~HiZ~su8gD8Nl{>V!YOKeF+1uEWh0DEJx@x$KOFp`$4*mvxyR7PsOd3jf6%Ca1pX)vw@xQ0xHe%!bc+_MEFxlL>`@C+}rv4mgf?Hve%8t^ws0R z2~0muWYJ)dJgrNnDxyqo-q0m@WMv^6T_@&6KK9stfT26e6*v}{xhr&N-_oK{AXw$a5)RZNV*PB)WQJYXjr~?&)F+wxm%{5ez}(i-eHT=2SKT^e)gY z_|a!q`d_^Oxlr%j`*#BUudet};1;Uy?!i!gybl_K4;;#pHB&625XL@SYH za@>OL1LaJAvfR?m9Qm2Om^#z3Rw!0{1&8EM2sOaaJnoVp`9-}5L*||aoT;m1k=rHi zva>9I1N}h)q2DMAk(*YMj}RLXbg^9Qh$+>>S5>sHpZs8seg0tErWu4)TRnbtjn)Yc z48Qnh=n-rtBUsIf^tKf6R-0omU=7(BC(+T#9XX{~-{MtxNFG~MJz#6uf9@t0(1xE} z#ZSW$?s}>&ZHWkGm)+#b;HviD{ab$6#Pw{bxHl2s_ zE}ZS0iM(oW-#BvaEDm9Vs@~G6ynA`qxqsVr^sAxbh7=SVw-~r0t<(0?B7mg?KH5uc z-x_ogpTA!(JhYT!4iI9Rb4PW8(n} zX2Y1RLS6g;=KK8Nkq0k+yH=^wL_{AIWx&gf0&1B$o*en9&Q$*R$dH1>UVGq2uYt`0 zCP|l=&hIwN-*uQv^XjG%^0%umxcIEeQJ4Y``X~|-((R2Am`vDoC+V@fRJJk|!r%Dr zk1&y}Oxg_BnY`ZQy(O|{F)%6e5s@LuE}}Sn6Yb<|toY%(SiP${UnRRtNQv}1+zx;3 zvnvg*$wixkkNPJ$|8tAZLYq*Fd3`=P0Z1#7lheySLezA#sfrl-m5fPRY@#PeR^4&} zYxcNh4x^3IEcDxdQ9&i~`@1Cl^U(-z7X&gXNai(H69$jHYe2P>Q#Y<&)HgWMZF2ag z>B4syqVuzE_6lAibee-nwdia{LGm?MY>|8offusN+fLyF@l$HB@67nz@V@eov9)yl zHk-f7d>EfC7E|Cj`;bk;2|0ywCG+d~72`nG~;pSp#5zyM~l6njNp-Yx>D=pu8ibp#l zWGg707GgD{j#YA*8ZE6h=renSM$AmBzlbCc5wY=#Vx*&}_Qj*IMvns6GZ~J5QT%Josif`KK#eN`hP3>w;?mE|TgOreJqMgUv)IbfWx} z3HPQbc*@dJS3Y2_G>O|(>|NWDh$i2=5+^rwKLpc7dy=OUeP1;U^4xwt#yNe^M5_~T z@Knkh0%aeXJoxE1aREGq*-Z;L5;$XnBxO9dyVr*%?=!-f{+e%e4U_3#k1?8pRqt=* z$p-sNWq7htW&GrTAOzePnL$y9{fS^Y(8{oYwT9_2OwFjWDxi^ATE9;BUgH}N=-Zc_ zi+u#*?hd7Hs8Pu)A=V9|fMB`H6qWcEX)gt&%(pIt(_$hC@}1egK4@eJOZ3htd|j6{ zW*gl_OrL=@0h0}~Af1&|Ry-}Snh)sHFUj#Le%Ot_93Mmv0biyne~Ke?+~spB`TYJv^aK1cigy_smCxqMUlFqR?3 zPvAri@3^jAp1qY`A+8?@%%xkS`z`B#a+l`coh#qu%9*cam}3bxqAR1To7asm%qYL2 z-pM&VyV{+wNAL-F(O7(G0byhoqrW7k;*{{JY14{Izr2W}uY42UoHyKBSm%DkNwpmB z;~23dB+obj<=G-#x%^!anLCd_NcAAq`=oyVSbt$d% zh4YJ|kW?4-Itw7wU>>sfP-t=ta;H~i3SK+my2hjsL!BJ~4TlFpQ*T~;xW`Frc>NzL CVN!Mg delta 3680 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 diff --git "a/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" "b/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL.epf" index 3516fd986fe6e22e1abc72d68f2a022c1d45011b..65dfd7e14a4c83cf3ed797bccba25237d881f57c 100644 GIT binary patch delta 3960 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 NQITSYBQSyP{s%8bPlNyf delta 3671 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 XWL;h_2DzV@2EkK&Pj=7K>;3-)@|)Ai diff --git "a/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" "b/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260.epf" index d21ca08ce66318117591ecf30b0917423d3e9799..791e22d78cbea728920e9b2e1582f4b819863ac5 100644 GIT binary patch delta 3817 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 delta 2965 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 JLL?`5{6Aq5?Mnav diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 6f1e463a..62cee9da 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -51,6 +51,15 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Экспортировать(Отчет, ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + +КонецПроцедуры + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" index 078d7809..b6539604 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 110) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 119) Макеты\СхемаAllure.txt-->2d3462c8-c871-442e-81a7-d457064fdf0b.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 389d81bf..80f4d2ff 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,5 +1,5 @@ {3, -{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, {1,0},0,0,1,1,1,0,1,0, {0,1,0}, {0},1, @@ -47,7 +47,7 @@ {0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} },0,1,2, {1, -{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2}," +{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -100,6 +100,15 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Экспортировать(Отчет, ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + +КонецПроцедуры + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() @@ -139,7 +148,8 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} }, {0,0}, {0,0}, diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" index c23bfe28..421eee79 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/version" @@ -1,3 +1,5 @@ { -{216,0} +{216,0, +{80308,0} +} } \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" index 2abbd5c9..a7406f05 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260AllureXML/und/versions" @@ -1 +1 @@ -{1,11,"",bdc3bba3-f8ac-4507-a33a-3cae0ba1f847,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",c7e94cf4-03a6-4922-8f31-169614867285,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",1f8bc025-a7ba-4519-bf4d-e9fe51d71fca,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",9ae37250-e9f2-4244-b941-32a82fc8d5d5,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",ff463e54-3ff7-45bb-bc47-7ebd2656146c,"copyinfo",894cad72-c7e4-496f-b22d-255e48e4f2e6,"root",9c5309e1-bc94-47a7-b94a-489997dcd9da,"version",9f0ad40e-eb00-4b64-965d-e3134043c4f2,"versions",0ab69ccb-5279-47fb-82d1-d02ca5f32824} \ No newline at end of file +{1,11,"",16837005-6a55-48fa-8753-d1010102e534,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",b9e7f5ab-c0e3-4a3f-a3ed-7f07c08548d1,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",f4d39e50-7912-429c-a80b-b2db45b1494f,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",24ca01a4-f995-4129-9cd4-2498bcd5037c,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",ff463e54-3ff7-45bb-bc47-7ebd2656146c,"copyinfo",26f4785c-5e79-4740-a5c8-319db7491084,"root",30ee5351-452d-4e82-af03-a3cbbd0ca6ac,"version",decba46b-aa9a-4c08-bd55-ca05f044d093,"versions",d072941b-e0ba-44aa-a019-c1be62b30326} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 9f00ea34..5de96054 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -35,6 +35,43 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +&НаКлиенте +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "."); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ".")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" index 8789e60a..f260126f 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/ObjectModule.bsl" @@ -102,6 +102,40 @@ КонецПроцедуры // } Report generator interface +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "."); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ".")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers Функция УдалитьНедопустимыеСимволыXML(Знач Результат) Позиция = НайтиНедопустимыеСимволыXML(Результат); diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" index 8ed1072c..a7616f5f 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 94) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 131) Макеты\СхемаJUnit4.txt-->00f1e100-3117-4bea-8be0-1a49b1eccdd9.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index d3c2cb60..4a8725e4 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -84,6 +84,43 @@ КонецПроцедуры // } Report generator interface +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + + Если ТребуетсяАсинхроннаяЗаписьДокумента() Тогда + Отчет.НачатьЗапись(ОбработкаОповещения, ПолныйПутьФайла); + Иначе + Отчет.Записать(ПолныйПутьФайла); + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +// До 8.3.9 не контролируется метод Записать, а в 8.3.6 вообще нет метода НачатьЗапись +// +&НаКлиенте +Функция ТребуетсяАсинхроннаяЗаписьДокумента() + + СИ = Новый СистемнаяИнформация; + Версия = Сред(СИ.ВерсияПриложения,3); // сразу уберем 8. + Поз = Найти(Версия, "".""); + Минор = Число(Лев(Версия, Поз-1)); + Если Минор > 3 Тогда + Возврат Истина; + КонецЕсли; + + Версия = Сред(Версия, Поз+1); + Релиз = Число(Лев(Версия, Найти(Версия, ""."")-1)); + + Если Релиз > 8 Тогда + Возврат Истина; + КонецЕсли; + + Возврат Ложь; + +КонецФункции + + // { Helpers &НаСервере Функция ЭтотОбъектНаСервере() diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" index 63a25993..167cd14c 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260JUnitXML/und/versions" @@ -1 +1 @@ -{1,11,"",2e0e9d5f-b6ea-4de2-9c45-c832b42beec2,"00f1e100-3117-4bea-8be0-1a49b1eccdd9",48aa047c-ca85-44d8-8e5d-889d55fff3c9,"00f1e100-3117-4bea-8be0-1a49b1eccdd9.0",f2a83816-e7ce-489f-a797-3c122f23f602,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",34dfe043-5b35-4db2-aee0-83bc12415b0e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",fa39627e-bff3-4e1e-aeb3-d5e268d84d1a,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",e79fffdf-df29-41a2-861f-6cb38f2cc3ca,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",5d44d229-c123-4e4f-bc97-37e16127b888,"copyinfo",ba927ef7-ce67-47dc-90e3-e197c5d12150,"root",f59694fb-2573-47e2-945f-2cf40d85b803,"version",e6a3b139-28d1-40e4-9d6e-463fc9267cc5,"versions",bfb2d2c1-3015-4a00-bce4-c97b2ad11d31} \ No newline at end of file +{1,11,"",2f3429d4-6061-4b4c-9533-131a233fc3b8,"00f1e100-3117-4bea-8be0-1a49b1eccdd9",48aa047c-ca85-44d8-8e5d-889d55fff3c9,"00f1e100-3117-4bea-8be0-1a49b1eccdd9.0",f2a83816-e7ce-489f-a797-3c122f23f602,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",6b55bf4f-d4d0-4e0d-94d7-94fafe261860,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",e8fa9448-595b-469b-8371-f83d644eab2d,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",9321bdaa-2793-417f-85d7-69a0722d273e,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",5e06ff8c-5278-4684-b14f-d3604f2732d2,"copyinfo",077f2c62-2351-4544-88eb-f024c4b61098,"root",1f43fe70-91d2-4604-83d4-0abf5a9f0610,"version",fe1d9266-1e91-477c-8c69-2749cfaa977c,"versions",aa211b64-8391-4cae-99a0-fbdb36fcd86a} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 793020bf..cdae4a50 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -36,6 +36,12 @@ Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт ВызватьИсключение "Метод не реализован"; КонецПроцедуры + +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + ВызватьИсключение "Метод не реализован"; +КонецПроцедуры + // } Report generator interface // { Helpers diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" index d4f72c18..6d219591 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/maps.txt" @@ -1,2 +1,2 @@ -Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (29, 75) +Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 102) Макеты\ОтчетТестирования.mxl-->e723b36e-7faa-4345-bf5b-763f60cd5663.0 diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" index 5e95c3f6..823da731 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/11c5f751-bfaf-480a-92fe-7f30023f2e9a" @@ -4,9 +4,9 @@ {1, {4,85629dd2-6be4-49c6-9a69-13411102aa57,3fdd55c8-e92e-4f99-8b28-3ba8957b50ab, {0, -{0, +{1, {0,0,908d0aaf-e4ec-4668-8d14-3e8075d222fd},"ГенераторОтчетаMXL", -{1,"ru","Генератор отчета MXL"},""} +{1,"ru","Генератор отчета MXL"},"",0,0} },4e8e1a4a-a947-419b-95c8-58a411e3ffa4,"",00000000-0000-0000-0000-000000000000},4, {2bcef0d1-0981-11d6-b9b8-0050bae0a95d,0}, {3daea016-69b7-4ed4-9453-127911372fe6,1,e723b36e-7faa-4345-bf5b-763f60cd5663}, @@ -14,11 +14,11 @@ {ec6bb5e5-b7a8-4d75-bec9-658107a699cf,2, { {0, -{25, +{27, {2, -{0, +{1, {0,0,72263b85-e321-40b2-b5dc-368b036f7aaa},"ТипыУзловДереваТестов", -{1,"ru","Типы узлов дерева тестов"},""}, +{1,"ru","Типы узлов дерева тестов"},"",0,0}, {"Pattern"} },0, {0}, @@ -29,15 +29,15 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0} +{"S",""},0,0,0} },0}, { {0, -{25, +{27, {2, -{0, +{1, {0,0,edb4e982-95f6-4760-818c-4bcd498a85aa},"СостоянияТестов", -{1,"ru","Состояния тестов"},""}, +{1,"ru","Состояния тестов"},"",0,0}, {"Pattern"} },0, {0}, @@ -48,7 +48,7 @@ {3,0,0}, {0,0},0, {0}, -{"S",""},0} +{"S",""},0,0,0} },0} } } diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" index e9f6cd91..554d4f73 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4" @@ -1,10 +1,15 @@ {1, {1, {0, -{9, -{0, +{12, +{1, {0,0,4e8e1a4a-a947-419b-95c8-58a411e3ffa4},"Форма", -{1,"ru","Форма"},""},0,1}, +{1,"ru","Форма"},"",0,1,32e087ab-1491-49b6-aba7-43571b41ac2b,3},0,1, +{2, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,1}, +{"#",1708fdaa-cbce-4289-b373-07a5a74bee91,2} +} +}, {0} } },0} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" index 23d2bae6..e1fd8831 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0" @@ -1,9 +1,9 @@ -{2, -{28,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{3, +{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, {1,0},0,0,1,1,1,0,1,0, -{0}, +{0,1,0}, {0},1, -{17, +{21, {-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, {0, {0, @@ -14,19 +14,40 @@ {3,4, {0} }, -{6,3,0,1}, +{7,3,0,1,100}, {0,0,0},1, -{0,0,1},0,1},0,"","",1, -{17, +{0,0,1},0,1,0,0,0,3,3},0,"","",1, +{21, {0},0,0,0,7,"Navigator", {1,0}, {1,0},0,1,0,0,0,2,2, {3,4, {0} }, -{6,3,0,1}, -{0,0,0},0,0,1} -}," +{7,3,0,1,100}, +{0,0,0},0,0,1,0,1, +{10, +{0},0,0,0,0,"NavigatorРасширеннаяПодсказка", +{1,0}, +{1,0},1,0,0,2,2, +{3,4, +{0} +}, +{7,3,0,1,100}, +{0,0,0},1, +{5,0,0,3,0, +{0,1,0}, +{3,4, +{0} +}, +{3,4, +{0} +}, +{3,0, +{0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} +},0,1,2, +{1, +{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -64,6 +85,12 @@ Процедура Экспортировать(Отчет, ПолныйПутьФайла) Экспорт ВызватьИсключение ""Метод не реализован""; КонецПроцедуры + +&НаКлиенте +Процедура НачатьЭкспорт(ОбработкаОповещения, Отчет, ПолныйПутьФайла) Экспорт + ВызватьИсключение ""Метод не реализован""; +КонецПроцедуры + // } Report generator interface // { Helpers @@ -104,10 +131,10 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} }, {0,0}, {0,0}, {0,0}, -{0,0} -} \ No newline at end of file +{0,0},0,0} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" index 7dae7109..f357372e 100644 --- "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" +++ "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663" @@ -1,6 +1,6 @@ {1, {2,0, -{0, +{1, {0,0,e723b36e-7faa-4345-bf5b-763f60cd5663},"ОтчетТестирования", -{1,"ru","Отчет тестирования"},""} +{1,"ru","Отчет тестирования"},"",0,1,8eb4fad1-1fa6-403e-970f-2c12dbb43e23,3} },0} \ No newline at end of file diff --git "a/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" "b/src/Plugins/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\236\321\202\321\207\320\265\321\202\320\260MXL/und/e723b36e-7faa-4345-bf5b-763f60cd5663.0" index 88892e35841c89fc558c089b5e4ecea22c4edab0..b2f661b980d46117332c0449da54881c6b702b0f 100644 GIT binary patch delta 71 zcmeys`-fM|*FVD9)rWzDfsuie;r;IY)fPI2I+h#7c-a`uC#$gOu;>^X7)%aei(xdL Wyq3*UNXMX7hnK4wNE(2lVJ!fqMiI>b delta 53 zcmeyv`+--?*FVD9)rWzDfsuiY;r;IY)fPI2I%XTic-a`uCabXNOb%g-VKkb&k^X7)%aei(xdL Wyq3*UNXMX7hnK4wNE(2lVJ!fqMiI>b delta 53 zcmeyv`+--?*FVD9)rWzDfsuiY;r;IY)fPI2I%XTic-a`uCabXNOb%g-VKkb&k 0 Тогда + Результат = ДеревоТестовФайла.Строки[0]; + ВходящийКонтекст.ДополнительныеПараметры.КонтейнерКаталога.Строки.Добавить(Результат); + КонецЕсли; + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +#КонецОбласти + &НаКлиенте Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); @@ -108,7 +216,13 @@ КонецЕсли; Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); + Обр = Новый ОписаниеОповещения("ОкончаниеЗагрузкиТестов", ЭтаФорма); + КонтекстЯдра.НачатьЗагрузкуТестов(Обр, Описание.Идентификатор, Результат); КонецПроцедуры + +&НаКлиенте +Процедура ОкончаниеЗагрузкиТестов(Результат, Параметры) Экспорт +КонецПроцедуры + // } Вспомогательные методы \ No newline at end of file diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" index 55c1db7b..2abe29b6 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/maps.txt" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (50, 163) +Form\Форма\Форма.bsl-->b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0 (50, 277) diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" index 429d8ee0..162f78ac 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0" @@ -1,7 +1,7 @@ {3, -{42,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, +{46,0,0,0,0,1,0,0,00000000-0000-0000-0000-000000000000,1, {1,0},0,0,1,1,1,0,1,0, -{0,0,0}, +{0,1,0}, {0},1, {21, {-1,02023637-7868-4a5f-8576-835a76e0c9ba},0,0,1, @@ -36,7 +36,7 @@ {7,3,0,1,100}, {0,0,0},1, {5,0,0,3,0, -{0,0,0}, +{0,1,0}, {3,4, {0} }, @@ -47,7 +47,7 @@ {0},0,1,0,48312c09-257f-4b29-b280-284dd89efc1e} },0,1,2, {1, -{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2}," +{1,0},0},0,0,1,0,0,1,0,3,3},0,3,3},1,"",2,0,0,0,0,0,3,3,0,0,2,100,1,1,0}," // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -84,6 +84,114 @@ Возврат ДеревоТестов; КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Функция НачатьЗагрузку(ОбработчикОповещения, КонтекстЯдра, Путь) Экспорт + + КаталогДляЗагрузки = Новый Файл(Путь); + НачатьЗагрузкуКаталога(ОбработчикОповещения, КаталогДляЗагрузки, КонтекстЯдра); + +КонецФункции + +&НаКлиенте +Процедура НачатьЗагрузкуКаталога(Знач ОбработчикОповещения, Знач КаталогДляЗагрузки, Знач КонтекстЯдра) Экспорт + + КонтейнерКаталога = КонтекстЯдра.Плагин(""ПостроительДереваТестов"").СоздатьКонтейнер(КаталогДляЗагрузки.Имя); + + ДопПараметры = Новый Структура; + ДопПараметры.Вставить(""ОбработкаЗавершения"", ОбработчикОповещения); + ДопПараметры.Вставить(""КонтейнерКаталога"", КонтейнерКаталога); + ДопПараметры.Вставить(""КонтекстЯдра"", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения(""ОбработкаПоискаВКорнеКаталога"", ЭтаФорма, ДопПараметры); + НачатьПоискФайлов(Обработчик, КаталогДляЗагрузки.ПолноеИмя, ""*"", Ложь); + +КонецПроцедуры + + +&НаКлиенте +Процедура ОбработкаПоискаВКорнеКаталога(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + Итератор = Новый Структура; + Итератор.Вставить(""Коллекция"", НайденныеФайлы); + Итератор.Вставить(""Индекс"", -1); + + Контекст = Новый Структура(""Итератор, ДополнительныеПараметры"", Итератор, ДополнительныеПараметры); + Контекст.Вставить(""Результат"", ДополнительныеПараметры.КонтейнерКаталога); + + ОбработатьОчереднойФайлНачало(Контекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗавершитьОбработкуНайденногоФайла(Знач ЭтоКаталог, Знач ВходящийКонтекст) Экспорт + + ОбработкаПрерыванияПользователя(); + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + Если ЭтоКаталог Тогда + + Сообщить( НСтр(""ru = 'FIXME: Загрузка вложенных каталогов не поддерживается'"") ); + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + + ИначеЕсли НРег(ДополнительныеПараметры.Файл.Расширение) = "".epf"" + ИЛИ НРег(ДополнительныеПараметры.Файл.Расширение) = "".erf"" Тогда + + Обработчик = Новый ОписаниеОповещения(""ОбработчикЗавершенияЗагрузкиФайла"", ЭтаФорма, ВходящийКонтекст); + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + ЗагрузчикФайла = КонтекстЯдра.Плагин(""ЗагрузчикФайла""); + ЗагрузчикФайла.НачатьЗагрузку(Обработчик, КонтекстЯдра, ДополнительныеПараметры.Файл.ПолноеИмя); + + Иначе + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработатьОчереднойФайлНачало(Знач ВходящийКонтекст) Экспорт + + Итератор = ВходящийКонтекст.Итератор; + ДополнительныеПараметры = ВходящийКонтекст.ДополнительныеПараметры; + + Итератор.Индекс = Итератор.Индекс+1; + + Если Итератор.Индекс < Итератор.Коллекция.Количество() Тогда + + ТекущийФайл = Итератор.Коллекция[Итератор.Индекс]; + ДополнительныеПараметры.Вставить(""Файл"", ТекущийФайл); + Обработчик = Новый ОписаниеОповещения(""ЗавершитьОбработкуНайденногоФайла"", ЭтаФорма, ВходящийКонтекст); + ТекущийФайл.НачатьПроверкуЭтоКаталог(Обработчик); + Иначе + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, ВходящийКонтекст.Результат); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиКаталога(Знач ДеревоТестов, Знач ВходящийКонтекст) Экспорт + + // блабла + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикЗавершенияЗагрузкиФайла(Знач ДеревоТестовФайла, Знач ВходящийКонтекст) Экспорт + + Перем Результат; + Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда + Результат = ДеревоТестовФайла.Строки[0]; + ВходящийКонтекст.ДополнительныеПараметры.КонтейнерКаталога.Строки.Добавить(Результат); + КонецЕсли; + + ОбработатьОчереднойФайлНачало(ВходящийКонтекст); + +КонецПроцедуры + +#КонецОбласти + &НаКлиенте Функция ПолучитьКонтекстПоПути(КонтекстЯдра, Путь) Экспорт ЗагрузчикФайла = КонтекстЯдра.Плагин(""ЗагрузчикФайла""); @@ -157,9 +265,15 @@ КонецЕсли; Описание = ОписаниеПлагина(КонтекстЯдра.Объект.ТипыПлагинов); - КонтекстЯдра.ЗагрузитьТесты(Описание.Идентификатор, Результат); + Обр = Новый ОписаниеОповещения(""ОкончаниеЗагрузкиТестов"", ЭтаФорма); + КонтекстЯдра.НачатьЗагрузкуТестов(Обр, Описание.Идентификатор, Результат); КонецПроцедуры + +&НаКлиенте +Процедура ОкончаниеЗагрузкиТестов(Результат, Параметры) Экспорт +КонецПроцедуры + // } Вспомогательные методы", {4,1, {9, @@ -192,7 +306,8 @@ Oi8vdjguMWMucnUvOC4xL2RhdGEvdWkiIHhtbG5zOndlYj0iaHR0cDovL3Y4LjFj LnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93ZWIiIHhtbG5zOndpbj0iaHR0cDovL3Y4 LjFjLnJ1LzguMS9kYXRhL3VpL2NvbG9ycy93aW5kb3dzIiB4bWxuczp4cz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDov -L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiLz4=} +L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KCTxvdXRwdXRQ +YXJhbWV0ZXJzLz4NCjwvU2V0dGluZ3M+} }, {0,0}, {0,0}, diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" index c23bfe28..421eee79 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/version" @@ -1,3 +1,5 @@ { -{216,0} +{216,0, +{80308,0} +} } \ No newline at end of file diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" index 3c03adb6..e3e3efbb 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/und/versions" @@ -1 +1 @@ -{1,9,"",e4ffcf1d-bf2c-42b5-80c8-e5c0b41a618e,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",0d6b4738-4f50-4922-b033-bc63f2bca2e0,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",807bfdcf-165f-4351-bc57-33787ff37ee1,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",242bec23-3eb3-4427-9e6c-d232f1a19ab0,"copyinfo",1d621b95-91da-4f72-978f-c90fd592064c,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",3389934a-7ca4-47a8-8075-84c55bc1ddec,"root",f9e7b43d-eb51-4d0c-8c1d-872a828f9ea0,"version",69156a4b-7f9c-4bcb-9d19-028d29621911,"versions",b0ec16f9-dab0-4d6d-a357-e9a4a58cb927} \ No newline at end of file +{1,9,"",c00a6a60-0b62-45e1-a9c2-fab7ac80a13d,"47df0590-78c7-4bb0-bf65-a5c6ef41a8d7.0",0d6b4738-4f50-4922-b033-bc63f2bca2e0,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4",43bc278c-2c88-4d16-998b-6117948b238f,"b5f25876-92c4-4d3f-ac5d-d5ee489cf5d4.0",3879501c-3db3-426d-9cdd-3e7be8c98917,"copyinfo",f1e4c933-455b-44cd-9be8-4c1448196ff3,"d8b3f25c-4b0c-4bad-8a2e-f7cf4018a448",df69dbc2-c657-46e3-bee9-4cd20658dae2,"root",05f12450-d6ae-4291-866c-aa1122bd6956,"version",f71e63e5-1f09-4a41-ac6c-2894c0f2dbad,"versions",6f7a38ce-ab93-4986-9102-bc946016dc73} \ No newline at end of file diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index 976acca7..8df3f461 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Form/\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -8,6 +8,9 @@ &НаКлиенте Перем ТекущаяГруппа; +&НаКлиенте +Перем ВырубитьКЧертямСинхронныеПроверки; + // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -40,6 +43,59 @@ КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьЗагрузку(Знач ОбработчикОповещения, Знач КонтекстЯдра, Знач Путь) Экспорт + + ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; + + ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); + ДеревоТестов = Неопределено; + + // TODO: Поддержать цикл по нескольким файлам в Пути + ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, 1)); + + Если ДеревоТестов = Неопределено Тогда + ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); + КонецЕсли; + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("ФайлОбработки", ФайлОбработки); + ПараметрыОповещения.Вставить("ПостроительДереваТестов", ПостроительДереваТестов); + ПараметрыОповещения.Вставить("ДеревоТестов", ДеревоТестов); + ПараметрыОповещения.Вставить("ОбработчикОповещения", ОбработчикОповещения); + ПараметрыОповещения.Вставить("КонтекстЯдра", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения("ЗагрузкаВнешнейОбработкиЗавершение", ЭтаФорма, ПараметрыОповещения); + КонтекстЯдра.НачатьПодключениеВнешнейбработки(Обработчик, ФайлОбработки); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаВнешнейОбработкиЗавершение(Знач Результат, Знач ДополнительныеПараметры) Экспорт + + ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; + ПостроительДереваТестов = ДополнительныеПараметры.ПостроительДереваТестов; + ДеревоТестов = ДополнительныеПараметры.ДеревоТестов; + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + + КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); + КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра); + Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда + КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); + КонецЕсли; + Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда + ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); + КонецЕсли; + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработчикОповещения, ДеревоТестов); + +КонецПроцедуры + + +#КонецОбласти + &НаКлиенте Функция Загрузить(КонтекстЯдра, Путь) Экспорт @@ -109,6 +165,11 @@ &НаКлиенте Процедура ПроверитьКорректностьФайла(Файл) + + Если ВыключитьСинхронныеПроверки() Тогда + Возврат; + КонецЕсли; + Если Не Файл.Существует() Тогда ВызватьИсключение "Переданный файл не существует файл <" + Файл.ПолноеИмя + ">"; КонецЕсли; @@ -117,6 +178,29 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция ВыключитьСинхронныеПроверки() + + Если ВырубитьКЧертямСинхронныеПроверки = Неопределено Тогда + + ВырубитьКЧертямСинхронныеПроверки = ЗапрещеныСинхронныеВызовы(); + + КонецЕсли; + + Возврат ВырубитьКЧертямСинхронныеПроверки; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗапрещеныСинхронныеВызовы() + Если Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; +КонецФункции + + &НаСервере Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" index db702b94..676623d6 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/maps.txt" @@ -1 +1 @@ -Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (50, 476) +Form\Форма\Форма.bsl-->d75f146d-5027-4604-80fd-3b704ddd86a8.0 (50, 560) diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" index 6f15732c..daeb857c 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/d75f146d-5027-4604-80fd-3b704ddd86a8.0" @@ -57,6 +57,9 @@ &НаКлиенте Перем ТекущаяГруппа; +&НаКлиенте +Перем ВырубитьКЧертямСинхронныеПроверки; + // { Plugin interface &НаКлиенте Функция ОписаниеПлагина(ВозможныеТипыПлагинов) Экспорт @@ -89,6 +92,59 @@ КонецФункции +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьЗагрузку(Знач ОбработчикОповещения, Знач КонтекстЯдра, Знач Путь) Экспорт + + ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; + + ПостроительДереваТестов = КонтекстЯдра.Плагин(""ПостроительДереваТестов""); + ДеревоТестов = Неопределено; + + // TODO: Поддержать цикл по нескольким файлам в Пути + ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, 1)); + + Если ДеревоТестов = Неопределено Тогда + ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); + КонецЕсли; + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить(""ФайлОбработки"", ФайлОбработки); + ПараметрыОповещения.Вставить(""ПостроительДереваТестов"", ПостроительДереваТестов); + ПараметрыОповещения.Вставить(""ДеревоТестов"", ДеревоТестов); + ПараметрыОповещения.Вставить(""ОбработчикОповещения"", ОбработчикОповещения); + ПараметрыОповещения.Вставить(""КонтекстЯдра"", КонтекстЯдра); + + Обработчик = Новый ОписаниеОповещения(""ЗагрузкаВнешнейОбработкиЗавершение"", ЭтаФорма, ПараметрыОповещения); + КонтекстЯдра.НачатьПодключениеВнешнейбработки(Обработчик, ФайлОбработки); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаВнешнейОбработкиЗавершение(Знач Результат, Знач ДополнительныеПараметры) Экспорт + + ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; + ПостроительДереваТестов = ДополнительныеПараметры.ПостроительДереваТестов; + ДеревоТестов = ДополнительныеПараметры.ДеревоТестов; + КонтекстЯдра = ДополнительныеПараметры.КонтекстЯдра; + + КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя); + КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, КонтекстЯдра); + Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда + КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); + КонецЕсли; + Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда + ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); + КонецЕсли; + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработчикОповещения, ДеревоТестов); + +КонецПроцедуры + + +#КонецОбласти + &НаКлиенте Функция Загрузить(КонтекстЯдра, Путь) Экспорт @@ -158,6 +214,11 @@ &НаКлиенте Процедура ПроверитьКорректностьФайла(Файл) + + Если ВыключитьСинхронныеПроверки() Тогда + Возврат; + КонецЕсли; + Если Не Файл.Существует() Тогда ВызватьИсключение ""Переданный файл не существует файл <"" + Файл.ПолноеИмя + "">""; КонецЕсли; @@ -166,6 +227,29 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция ВыключитьСинхронныеПроверки() + + Если ВырубитьКЧертямСинхронныеПроверки = Неопределено Тогда + + ВырубитьКЧертямСинхронныеПроверки = ЗапрещеныСинхронныеВызовы(); + + КонецЕсли; + + Возврат ВырубитьКЧертямСинхронныеПроверки; + +КонецФункции + +&НаСервереБезКонтекста +Функция ЗапрещеныСинхронныеВызовы() + Если Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать Тогда + Возврат Истина; + Иначе + Возврат Ложь; + КонецЕсли; +КонецФункции + + &НаСервере Функция ЗагрузитьФайлНаСервере(ПолныйПутьКОбработкеНаКлиенте) diff --git "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" index dd87c5fb..3a260779 100644 --- "a/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" +++ "b/src/Plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/und/versions" @@ -1 +1 @@ -{1,9,"",8166408f-4159-4e2b-9781-2d591673955c,"51efd65a-ed36-4be7-a563-89b34ebfa851",aa5965af-4229-4bbe-b205-090baded4def,"copyinfo",a2e3eb0b-0020-47ab-ad3d-4a2d481c4930,"d75f146d-5027-4604-80fd-3b704ddd86a8",3d1dd6a8-9cce-40fd-ac47-2fb03a6d359f,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",06306db7-53d9-4399-ba5b-df74053ccdb3,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",3a46fc39-ff5b-4c85-8cdc-989a5b0e6fcb,"root",4d97ec92-f9c5-4e9e-b11c-dc73ed1a5dc7,"version",1e8c5a76-64cc-49c6-b5e3-648fcce003d9,"versions",394b2e82-e841-4627-863c-c710af5699c5} \ No newline at end of file +{1,9,"",11da5058-994b-4803-a033-9dd5f01b492c,"51efd65a-ed36-4be7-a563-89b34ebfa851",7465e2c6-6f39-4d7c-a36c-1ae67fcf047b,"copyinfo",90af3dde-86cc-4eb1-b62f-e5c6055c88ef,"d75f146d-5027-4604-80fd-3b704ddd86a8",76b69016-57d5-4d94-aff0-7f9dc1aa5d34,"d75f146d-5027-4604-80fd-3b704ddd86a8.0",85b5a2ee-bd67-469e-bedc-edbb7524a010,"dfe532e1-d0ef-4008-afd4-214781ee4960.0",25fb5d31-d05b-4d6e-a186-e2c266de36c8,"root",974eeeda-449b-4134-893f-07fdacbfc00e,"version",47a4cec7-0deb-4976-9f7f-e3c4b64f0e4e,"versions",3d269ad0-d78c-4fa1-83b8-44e1a2169482} \ No newline at end of file diff --git "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" index cf04116e..6e502e23 100644 --- "a/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" +++ "b/src/xddTestRunner/Form/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/\320\244\320\276\321\200\320\274\320\260.bsl" @@ -3,6 +3,10 @@ &НаКлиенте Перем ПодключенныеВнешниеОбработки; +&НаКлиенте +Перем мСинхронныйРежимРазрешен; + + // { События формы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -20,7 +24,13 @@ &НаКлиенте Процедура ПриОткрытии() + ЗагрузитьПлагины(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаПлагиновЗавершение() Экспорт КэшироватьПеречисленияПлагинов(); СброситьПодключенныеВнешниеОбработки(); @@ -32,6 +42,23 @@ КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция СинхронныйРежимРазрешен() + Если мСинхронныйРежимРазрешен = Неопределено Тогда + мСинхронныйРежимРазрешен = ОпределитьВозможностьСинхронныхВызовов(); + КонецЕсли; + + Возврат мСинхронныйРежимРазрешен; +КонецФункции + +&НаСервереБезКонтекста +Функция ОпределитьВозможностьСинхронныхВызовов() + + Запрет = Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать; + Возврат Не Запрет; + +КонецФункции + &НаКлиенте Процедура ПриЗакрытии() @@ -189,40 +216,69 @@ Для Каждого Плагин Из Объект.Плагины Цикл КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); КонецЦикла; + + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + Иначе КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; + ОбработчикПоискаКлиентскихПлагинов = Новый ОписаниеОповещения("ОбработчикПоискаКлиентскихПлагинов", ЭтаФорма); + НачатьПоискФайлов(ОбработчикПоискаКлиентскихПлагинов, КаталогПлагинов, "*.epf", Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагинов(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПомещаемыеФайлы = Новый Массив; + ИдентификаторыПлагинов = Новый Соответствие; + Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + ИмяПлагина = ФайлОбработки.ИмяБезРасширения; + ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; + КонецЦикла; + + Если ПомещаемыеФайлы.Количество() Тогда + ПараметрыЗавершения = Новый Структура("ИдентификаторыПлагинов", ИдентификаторыПлагинов); + НачатьПомещениеФайлов(Новый ОписаниеОповещения("ОбработчикПоискаКлиентскихПлагиновЗавершение", ЭтаФорма, ПараметрыЗавершения), + ПомещаемыеФайлы,,Ложь,ЭтаФорма.УникальныйИдентификатор); + Иначе + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Новый Массив, ИдентификаторыПлагинов); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагиновЗавершение(Знач ПомещенныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(ПомещенныеФайлы, ДополнительныеПараметры.ИдентификаторыПлагинов); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов) + + Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; + + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + + Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл + ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - ДобавитьКомандыЗагрузчиковНаФорме(); + ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; + Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); + КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); + + КонецЦикла; + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + КонецПроцедуры &НаСервере @@ -851,7 +907,6 @@ // { Пакетный запуск &НаКлиенте Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; ПарсерКоманднойСтроки = ЭтаФорма.Плагин("ПарсерКоманднойСтроки"); ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); @@ -863,26 +918,196 @@ Объект.ПутьФайлаНастроек = Параметры_xddConfig[0]; КонецЕсли; - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); + НастройкиШагов = Новый Структура; + НастройкиШагов.Вставить("Параметры_xddRun"); + НастройкиШагов.Вставить("Параметры_xddReport"); + НастройкиШагов.Вставить("xddShutdown"); + + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun); + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport); + НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown); + + Если СинхронныйРежимРазрешен() Тогда + ВыполнитьПакетныйЗапускСинхронно(НастройкиШагов); + Иначе + ВыполнитьПакетныйЗапускАсинхронно(НастройкиШагов) КонецЕсли; - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускСинхронно(Знач ПараметрыЗапуска) + + Перем РезультатыТестирования; + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(ПараметрЗапуска.Параметры_xddRun); КонецЕсли; - Параметры_xddExitCodePath = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда - СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования); + Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрЗапуска.Параметры_xddReport <> Неопределено Тогда + СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрЗапуска.Параметры_xddReport, РезультатыТестирования); КонецЕсли; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда + Если ПараметрЗапуска.xddShutdown = Истина Тогда + //Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускАсинхронно(Знач ПараметрыЗапуска) + + Состояние = Новый Структура; + Состояние.Вставить("НастройкиШагов", ПараметрыЗапуска); + Состояние.Вставить("СледующийШаг"); + Состояние.Вставить("ТекущийШаг"); + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + Состояние.СледующийШаг = "ЗагрузитьТесты"; + ИначеЕсли ПараметрЗапуска.xddShutdown = Истина Тогда + Состояние.СледующийШаг = "ЗавершитьРаботу"; + Иначе + ВызватьИсключение НСтр("ru = 'xUnit: Я не знаю что мне делать. Нет приказа на выполнение тестов или закрытие.'"); + КонецЕсли; + + ВыполнитьШагПакетногоЗапуска(, Состояние); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапуска(Знач РезультатПредыдущегоШага, Знач Состояние) Экспорт + + ОбработкаОповещения = Новый ОписаниеОповещения("ВыполнитьШагПакетногоЗапуска", ЭтаФорма, Состояние, "ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма); + + Состояние.ТекущийШаг = Состояние.СледующийШаг; + Если Состояние.СледующийШаг = "ЗагрузитьТесты" Тогда + НачатьЗагрузкуТестовПакетныйРежим(ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "ЗапуститьТесты" Тогда + НачатьВыполнениеТестов(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "СоставитьОтчет" Тогда + СоставитьОтчетОТестировании(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = "ЗавершитьРаботу" Тогда + ЗавершитьРаботуСистемы(Ложь); + КонецЕсли; + +КонецПроцедуры // ВыполнитьШагПакетногоЗапуска() + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапускаИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач Состояние) Экспорт + + СтандартнаяОбработка = Ложь; + + ТекстОшибки = "Ошибка при асинхронном режиме пакетного запуска: + |Состояние: + | Текущий шаг: %1 + | Следующий шаг:%2 + | Исключение: %3"; + + // для унылых ретроградов, применяющих < 8.3.6 - придется без СтрШаблон + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%1", Состояние.ТекущийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%2", Состояние.СледующийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, "%3", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.АсинхронныйПакетныйЗапуск", ТекстОшибки); + Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестовПакетныйРежим(Знач ОбработкаОповещения); + Параметры_xddRun = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddRun; + ИдентификаторЗагрузчика = Параметры_xddRun[0]; + Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); + + ПутьКТестам = Параметры_xddRun[1]; + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗапуститьТесты"; + ОбработкаОповещения.ДополнительныеПараметры.Вставить("Загрузчик", Загрузчик); + Загрузчик.НачатьЗагрузку(ОбработкаОповещения, ЭтаФорма, ПутьКТестам); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьВыполнениеТестов(ДеревоТестовОтЗагрузчика, ОбработкаОповещения) + + Загрузчик = ОбработкаОповещения.ДополнительныеПараметры.Загрузчик; + РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "СоставитьОтчет"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, РезультатыТестирования); + +КонецПроцедуры + +&НаКлиенте +Процедура СоставитьОтчетОТестировании(РезультатыТестирования, ОбработкаОповещения) + + Параметры_xddReport = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddReport; + Если Не ЗначениеЗаполнено(РезультатыТестирования) или Параметры_xddReport = Неопределено Тогда + // Отчет не нужен + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, Неопределено); + Возврат; + КонецЕсли; + + Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип("ФиксированныйМассив") Тогда + НовыйМассивПараметров = Новый Массив; + НовыйМассивПараметров.Добавить(Параметры_xddReport); + Параметры_xddReport = НовыйМассивПараметров; + КонецЕсли; + + ЭкспортируемыеОтчеты = Новый Массив; + + Для Каждого ОчередныеПараметры Из Параметры_xddReport Цикл + + ИдентификаторГенератораОтчета = ОчередныеПараметры[0]; + ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); + Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); + ПутьКОтчету = ОчередныеПараметры[1]; + + СтрокаЭкспорта = СтрокаЭкспортируемыхОтчетов(); + СтрокаЭкспорта.Отчет = Отчет; + СтрокаЭкспорта.Путь = ПутьКОтчету; + СтрокаЭкспорта.ГенераторОтчета = ГенераторОтчета; + + ЭкспортируемыеОтчеты.Добавить(СтрокаЭкспорта); + + КонецЦикла; + + ПараметрыДиспетчера = Новый Структура; + ПараметрыДиспетчера.Вставить("ИндексОтчета", 0); + ПараметрыДиспетчера.Вставить("СписокОтчетов", ЭкспортируемыеОтчеты); + ПараметрыДиспетчера.Вставить("Финализация", ОбработкаОповещения); + + ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(, ПараметрыДиспетчера); + +КонецПроцедуры + +&НаКлиенте +Функция СтрокаЭкспортируемыхОтчетов() + Возврат Новый Структура("Отчет,Путь,ГенераторОтчета"); +КонецФункции + + +&НаКлиенте +Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(Знач РезультатЭкспорта, Знач ПараметрыДиспетчера) Экспорт + + СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов; + Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексОтчета Тогда + СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексОтчета]; + ГенераторОтчета = СтрокаЭкспорта.генераторОтчета; + + ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1; + ОбработчикЭкспорта = Новый ОписаниеОповещения("ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим", ЭтаФорма, ПараметрыДиспетчера, + "ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма); + ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь); + Иначе + ОбработкаОповещения = ПараметрыДиспетчера.Финализация; + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу"; + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + КонецПроцедуры + &НаКлиенте Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) Попытка @@ -1005,7 +1230,7 @@ // { Внешние интерфейсные инструменты &НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормы = "Форма") +Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = "", Знач ИмяФормыИнструмента = "Форма") Перем АдресХранилища; // Для встроенного в состав конфигурации браузера тестов @@ -1016,7 +1241,7 @@ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); + ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормыИнструмента); ФормаИнструмента.Открыть(); ФормаИнструмента = Неопределено; @@ -1028,17 +1253,30 @@ КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ОткрытьИнструментЗавершение1", ЭтаФорма, Новый Структура("АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента", АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента))); КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОткрытьИнструментЗавершение1(Существует, ДополнительныеПараметры) Экспорт + + АдресХранилища = ДополнительныеПараметры.АдресХранилища; + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); + Возврат; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормыИнструмента", ИмяИнструмента, ИмяФормыИнструмента)); + НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + +КонецПроцедуры + &НаКлиенте Функция ПолучитьПутьКПлагинам() // Для встроенного в состав конфигурации браузера тестов @@ -1072,6 +1310,66 @@ КонецЕсли; КонецПроцедуры +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьПодключениеВнешнейбработки(Знач ОбработкаОповещения, Знач ФайлОбработки) Экспорт + + Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда + ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = ".erf"); + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить("ФайлОбработки", ФайлОбработки); + ПараметрыОповещения.Вставить("ЭтоОтчет", ЭтоОтчет); + ПараметрыОповещения.Вставить("ОбработкаЗавершения", ОбработкаОповещения); + + АдресХранилища = ""; + Оп = Новый ОписаниеОповещения("ПодключитьВнешнююОбработкуЗавершение", ЭтаФорма, ПараметрыОповещения); + НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + Иначе + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестов(Знач ОбработкаОповещения, Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт + + ИнициализироватьИндикаторВыполнения(); + + ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; + ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить("ОбработкаОповещения", ОбработкаОповещения); + ДополнительныеПараметры.Вставить("ИдентификаторВыбранногоЗагрузчика", ИдентификаторВыбранногоЗагрузчика); + ДополнительныеПараметры.Вставить("Путь", Путь); + Обработчик = Новый ОписаниеОповещения("ЗагрузкаТестовЗавершение", ЭтаФорма, ДополнительныеПараметры); + ФормаЗагрузчика.НачатьЗагрузку(Обработчик, ЭтаФорма, Путь); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаТестовЗавершение(Знач ДеревоОтЗагрузчика, Знач ДополнительныеПараметры) Экспорт + + ЭтаФорма.ДеревоОтЗагрузчика = ДеревоОтЗагрузчика; + ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); + ЭлементыДереваТестов.Очистить(); + ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); + + КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); + РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); + + СохранитьВИсториюЗагрузкиТестовНаСервере(ДополнительныеПараметры.ИдентификаторВыбранногоЗагрузчика, ДополнительныеПараметры.Путь); + ОбновитьКомандыИсторииЗагрузкиТестов(); + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаОповещения); + +КонецПроцедуры + + +#КонецОбласти + &НаСервереБезКонтекста Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) Если ЭтоОтчет = Истина Тогда @@ -1273,13 +1571,16 @@ &НаКлиенте Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); + + Если ДополнительныеПараметры.Свойство("ОбработкаЗавершения") Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат); + КонецЕсли; КонецПроцедуры diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" index eacaf804..2a3ed898 100644 --- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" +++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/form" @@ -730,7 +730,7 @@ WqO9D1Ybj4djoFA1wUn/+QQoM/A+hx+5KYkYkRCf},0},0,0,0}, {0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, {1,0},0,0,100,0},9,2,0,0,1,1, {5,d4746b64-45af-49b5-a280-c2206705887b,9,1,1, -{6,3a830f71-6cbe-4cb9-a5dc-fea266ac5eb5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,01fbe074-0c9e-447e-a31e-661f89953d3e,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаВыполнитьВыделенныеТестыНажатие", {1,"КнопкаВыполнитьВыделенныеТестыНажатие", {1,1, @@ -836,7 +836,7 @@ gg==} },0,""}, {0,118,8} },1, -{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,3a830f71-6cbe-4cb9-a5dc-fea266ac5eb5, +{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,01fbe074-0c9e-447e-a31e-661f89953d3e, {8,"ВыполнитьТест",0,4, {1,2, {"#","Выполнить тест"}, @@ -1182,7 +1182,9 @@ RU5ErkJggg==} },0,""}, {0,0,0},0,2, {5,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1,3, -{6,229033c0-f167-4705-b82c-43ce74ed624e,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,f394e80b-8c36-4c32-a813-c661d768104c,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0}, +{6,a2fb8359-cad6-4d66-8eab-b66005dc8828,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,"КнопкаЗагрузитьТестыЗагрузитьНастройкиИзФайла", {1,1, @@ -1199,19 +1201,17 @@ RU5ErkJggg==} {0,0,0} } },0}, -{6,c815a5fa-14aa-46f3-a604-53aa5dc55389,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0}, -{6,5884fbe1-8142-41f1-aa6b-60d2c3f4c256,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,26},0},2, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,229033c0-f167-4705-b82c-43ce74ed624e, +{6,407e1772-c7ad-4101-b4fd-efdd6002af4d,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},2, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,a2fb8359-cad6-4d66-8eab-b66005dc8828, {8,"ЗагрузитьНастройкиИзФайла",0,1, {1,1, {"ru","Загрузить настройки из файла ..."} -},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},c815a5fa-14aa-46f3-a604-53aa5dc55389, +},1,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,28,1e2,0,0,1,0,0,0,0},407e1772-c7ad-4101-b4fd-efdd6002af4d, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},5884fbe1-8142-41f1-aa6b-60d2c3f4c256, +},0,4a024427-3a7c-4cdb-b06d-ea9b500fdeda,29,1e2,2,0,1,0,0,0,0},f394e80b-8c36-4c32-a813-c661d768104c, {8,"ИсторияЗагрузкиТестов",0,1, {1,1, {"ru","История загрузки тестов"} @@ -1344,7 +1344,24 @@ AAAASUVORK5CYII=} },0,""}, {0,0,0},0,2, {5,41c23139-b710-4b93-a93e-1a3fe9843cfe,5,1,3, -{6,fb76ded0-0d8a-4b24-bcf9-c2aebc637f35,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,5a232729-5c34-4019-bb67-0ea24f01b07c,1,e1692cc2-605b-4535-84dd-28440238746c, +{3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", +{1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", +{1,1, +{"ru","Перезагрузить браузер тестирования"} +}, +{1,1, +{"ru","Перезагрузить браузер тестирования"} +}, +{1,1, +{"ru","Перезагрузить браузер тестирования"} +}, +{4,0, +{0},"",-1,-1,1,0,""}, +{0,0,0} +} +},0}, +{6,46bc80c6-f261-49a4-8c79-7402cc652c8b,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"ПерезагрузитьПоследниеТестыПоИстории", {1,"ПерезагрузитьПоследниеТестыПоИстории", {1,1, @@ -1400,34 +1417,17 @@ fpcIxAUgkUoIHsoxHlpxsReNeI9EIrDkX2QLIpCML+Wkf5z+LcAAUD/gDNueXkgA AAAASUVORK5CYII=} },0,""} }, -{6,babed47b-c2f1-4d8a-bd1b-dc745f46fc93,1,e1692cc2-605b-4535-84dd-28440238746c, -{3,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", -{1,"КнопкаПерезагрузитьПерезагрузитьБраузерТестирования", -{1,1, -{"ru","Перезагрузить браузер тестирования"} -}, -{1,1, -{"ru","Перезагрузить браузер тестирования"} -}, -{1,1, -{"ru","Перезагрузить браузер тестирования"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -},0}, -{6,be6c4843-aaa6-49c1-b95f-a399d6d37521,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, +{6,c8f3cdd2-4129-4b38-b226-b264083cabc5,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, {1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,fb76ded0-0d8a-4b24-bcf9-c2aebc637f35, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,46bc80c6-f261-49a4-8c79-7402cc652c8b, {8,"ПерезагрузитьТесты",0,1, {1,1, {"ru","Перезагрузить тесты"} -},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},be6c4843-aaa6-49c1-b95f-a399d6d37521, +},1,41c23139-b710-4b93-a93e-1a3fe9843cfe,1,1e2,0,0,1,0,0,0,0},c8f3cdd2-4129-4b38-b226-b264083cabc5, {8,"Разделитель",0,1, {1,1, {"ru","Действие"} -},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},babed47b-c2f1-4d8a-bd1b-dc745f46fc93, +},0,41c23139-b710-4b93-a93e-1a3fe9843cfe,2,1e2,2,0,1,0,0,0,0},5a232729-5c34-4019-bb67-0ea24f01b07c, {8,"ПерезагрузитьБраузерТестирования",0,1, {1,1, {"#","Перезагрузить браузер тестирования"} @@ -2054,7 +2054,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0},"",-1,-1,1,0,""}, {0,0,0},0,2, {5,28c47454-3a17-4ec8-b47f-d5008bf3ea41,5,1,3, -{6,802f542d-86af-4c7f-aeea-32a1116c4257,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,92f9eb84-942a-4a63-8311-0b33445628c2,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыГенераторМакетовДанных", {1,"КнопкаИнструментыГенераторМакетовДанных", {1,1, @@ -2080,7 +2080,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {4,1, {0,01ec9d9a-7497-4d88-b93f-066c633a4866},"",-1,-1,1,0,""} }, -{6,91c7826e-383b-486c-a5ff-54bc2eb6f8f5,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,bb24726a-5a49-4c0b-a1d8-f8fa31d4df75,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыПоказатьГУИД", {1,"КнопкаИнструментыПоказатьГУИД", {1,1, @@ -2097,7 +2097,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0,0,0} } },0}, -{6,e0b852b7-c5c3-400b-be28-ce464569c002,1,e1692cc2-605b-4535-84dd-28440238746c, +{6,b0c6e437-9fc1-468d-b096-d08fdb51b09f,1,e1692cc2-605b-4535-84dd-28440238746c, {3,"КнопкаИнструментыКонвертерТестов", {1,"КнопкаИнструментыКонвертерТестов", {1,1, @@ -2114,15 +2114,15 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0,0,0} } },0},1, -{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,802f542d-86af-4c7f-aeea-32a1116c4257, +{5,31946946-0a9b-40a2-95cf-82f200778341,0,0,3,92f9eb84-942a-4a63-8311-0b33445628c2, {8,"ГенераторМакетовДанных",0,1, {1,1, {"#","Генератор макетов данных"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},91c7826e-383b-486c-a5ff-54bc2eb6f8f5, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,1,1e2,0,0,1,0,0,0,0},bb24726a-5a49-4c0b-a1d8-f8fa31d4df75, {8,"ПоказатьГУИД",0,1, {1,1, {"#","Показать ГУИД"} -},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},e0b852b7-c5c3-400b-be28-ce464569c002, +},0,28c47454-3a17-4ec8-b47f-d5008bf3ea41,2,1e2,0,0,1,0,0,0,0},b0c6e437-9fc1-468d-b096-d08fdb51b09f, {8,"КонвертерТестов",0,1, {1,1, {"ru","Конвертер тестов в формат 4-й версии"} @@ -2252,7 +2252,7 @@ jdPrfwG2yJrgafgYZAAAAABJRU5ErkJggg==} {0} } } -},859,552,1,0,1,4,4,1380,859,552,96}, +},859,552,1,0,1,4,4,1383,859,552,96}, { {1},27, {4, diff --git "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" index fa5ef934..0d210887 100644 --- "a/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" +++ "b/src/xddTestRunner/Form/\320\244\320\276\321\200\320\274\320\260/module.bsl" @@ -412,6 +412,7 @@ ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; НоваяФорма = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); + ОткрытьИнструментФрагмент(НоваяФорма); Иначе Если Не ПустаяСтрока(ПутьИнструмента) Тогда ПутьКВнешнимИнструментам = ПутьИнструмента + "\"; @@ -420,19 +421,39 @@ КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); - Возврат; - КонецЕсли; - Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь); - НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы); - Если НоваяФорма = Неопределено Тогда - Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); - Возврат; - КонецЕсли; + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения("ОткрытьИнструментЗавершение", ЭтаФорма, Новый Структура("ИмяИнструмента, ИмяФормы, ФайлИнструмента", ИмяИнструмента, ИмяФормы, ФайлИнструмента))); + КонецЕсли; +КонецПроцедуры + +Процедура ОткрытьИнструментЗавершение(Существует, ДополнительныеПараметры) Экспорт + + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормы = ДополнительныеПараметры.ИмяФормы; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); + Возврат; КонецЕсли; + Обработка = ВнешниеОбработки.Создать(ФайлИнструмента.ПолноеИмя, Ложь); + НоваяФорма = Обработка.ПолучитьФорму(ИмяФормы); + Если НоваяФорма = Неопределено Тогда + Сообщить("Инструмент <" + ИмяИнструмента + ">: не удалось получить основную форму!"); + Возврат; + КонецЕсли; + + ОткрытьИнструментФрагмент(НоваяФорма); + +КонецПроцедуры + +Процедура ОткрытьИнструментФрагмент(НоваяФорма) + + //Перем НоваяФорма; + НоваяФорма.Открыть(); НоваяФорма = Неопределено; + КонецПроцедуры Функция ПолучитьПутьКПлагинам() diff --git a/src/xddTestRunner/ObjectModule.bsl b/src/xddTestRunner/ObjectModule.bsl index 8e47b167..f7e8c3d8 100644 --- a/src/xddTestRunner/ObjectModule.bsl +++ b/src/xddTestRunner/ObjectModule.bsl @@ -26,7 +26,7 @@ КонецПроцедуры Функция Версия() Экспорт - Версия = "4.2.0.0"; + Версия = "4.2.1.0"; Возврат Версия; КонецФункции diff --git a/src/xddTestRunner/maps.txt b/src/xddTestRunner/maps.txt index 39d75160..5d337947 100644 --- a/src/xddTestRunner/maps.txt +++ b/src/xddTestRunner/maps.txt @@ -1 +1 @@ -Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 581) +Form\УправляемаяФорма\Форма.bsl-->ed07b230-8bf7-4423-b861-a31f23c7471f.0 (2 251, 3 882) diff --git a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 index 8377a9c4..9391df98 100644 --- a/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 +++ b/src/xddTestRunner/und/ed07b230-8bf7-4423-b861-a31f23c7471f.0 @@ -1959,6 +1959,10 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Перем ПодключенныеВнешниеОбработки; +&НаКлиенте +Перем мСинхронныйРежимРазрешен; + + // { События формы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) @@ -1976,7 +1980,13 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Процедура ПриОткрытии() + ЗагрузитьПлагины(); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаПлагиновЗавершение() Экспорт КэшироватьПеречисленияПлагинов(); СброситьПодключенныеВнешниеОбработки(); @@ -1988,6 +1998,23 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; КонецПроцедуры +&НаКлиенте +Функция СинхронныйРежимРазрешен() + Если мСинхронныйРежимРазрешен = Неопределено Тогда + мСинхронныйРежимРазрешен = ОпределитьВозможностьСинхронныхВызовов(); + КонецЕсли; + + Возврат мСинхронныйРежимРазрешен; +КонецФункции + +&НаСервереБезКонтекста +Функция ОпределитьВозможностьСинхронныхВызовов() + + Запрет = Метаданные.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент = Метаданные.СвойстваОбъектов.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент.НеИспользовать; + Возврат Не Запрет; + +КонецФункции + &НаКлиенте Процедура ПриЗакрытии() @@ -2145,40 +2172,69 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Для Каждого Плагин Из Объект.Плагины Цикл КэшФормПлагинов.Вставить(Плагин.Ключ, Истина); КонецЦикла; + + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + Иначе КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, ""*.epf"", Ложь); - ПомещаемыеФайлы = Новый Массив; - ИдентификаторыПлагинов = Новый Соответствие; - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); - ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - - ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - - КонецЦикла; + ОбработчикПоискаКлиентскихПлагинов = Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагинов"", ЭтаФорма); + НачатьПоискФайлов(ОбработчикПоискаКлиентскихПлагинов, КаталогПлагинов, ""*.epf"", Ложь); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагинов(Знач НайденныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПомещаемыеФайлы = Новый Массив; + ИдентификаторыПлагинов = Новый Соответствие; + Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ЗагруженныеФайлы = Новый Массив; - Если ПомещаемыеФайлы.Количество() Тогда - ПоместитьФайлы(ПомещаемыеФайлы, ЗагруженныеФайлы,,Ложь, ЭтаФорма.УникальныйИдентификатор); - КонецЕсли; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + ИмяПлагина = ФайлОбработки.ИмяБезРасширения; + ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - - ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - - КонецЦикла; + КонецЦикла; + + Если ПомещаемыеФайлы.Количество() Тогда + ПараметрыЗавершения = Новый Структура(""ИдентификаторыПлагинов"", ИдентификаторыПлагинов); + НачатьПомещениеФайлов(Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагиновЗавершение"", ЭтаФорма, ПараметрыЗавершения), + ПомещаемыеФайлы,,Ложь,ЭтаФорма.УникальныйИдентификатор); + Иначе + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Новый Массив, ИдентификаторыПлагинов); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработчикПоискаКлиентскихПлагиновЗавершение(Знач ПомещенныеФайлы, Знач ДополнительныеПараметры) Экспорт + + ПодключитьНайденныеКлиентскиеПлагиныНаСервере(ПомещенныеФайлы, ДополнительныеПараметры.ИдентификаторыПлагинов); + +КонецПроцедуры + +&НаКлиенте +Процедура ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов) + + Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; + + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + + Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл + ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; - ДобавитьКомандыЗагрузчиковНаФорме(); + ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; + Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); + КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); + + КонецЦикла; + ДобавитьКомандыЗагрузчиковНаФорме(); + ЗагрузкаПлагиновЗавершение(); + КонецПроцедуры &НаСервере @@ -2807,7 +2863,6 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs // { Пакетный запуск &НаКлиенте Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) - Перем РезультатыТестирования; ПарсерКоманднойСтроки = ЭтаФорма.Плагин(""ПарсерКоманднойСтроки""); ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); @@ -2819,26 +2874,196 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs Объект.ПутьФайлаНастроек = Параметры_xddConfig[0]; КонецЕсли; - Параметры_xddRun = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddRun, Параметры_xddRun) Тогда - РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); + НастройкиШагов = Новый Структура; + НастройкиШагов.Вставить(""Параметры_xddRun""); + НастройкиШагов.Вставить(""Параметры_xddReport""); + НастройкиШагов.Вставить(""xddShutdown""); + + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun); + ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport); + НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown); + + Если СинхронныйРежимРазрешен() Тогда + ВыполнитьПакетныйЗапускСинхронно(НастройкиШагов); + Иначе + ВыполнитьПакетныйЗапускАсинхронно(НастройкиШагов) КонецЕсли; - Параметры_xddReport = Неопределено; - Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда - СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускСинхронно(Знач ПараметрыЗапуска) + + Перем РезультатыТестирования; + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(ПараметрЗапуска.Параметры_xddRun); КонецЕсли; - Параметры_xddExitCodePath = Неопределено; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда - СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования); + Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрЗапуска.Параметры_xddReport <> Неопределено Тогда + СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрЗапуска.Параметры_xddReport, РезультатыТестирования); КонецЕсли; - Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда + Если ПараметрЗапуска.xddShutdown = Истина Тогда + //Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьПакетныйЗапускАсинхронно(Знач ПараметрыЗапуска) + + Состояние = Новый Структура; + Состояние.Вставить(""НастройкиШагов"", ПараметрыЗапуска); + Состояние.Вставить(""СледующийШаг""); + Состояние.Вставить(""ТекущийШаг""); + + Если ПараметрыЗапуска.Параметры_xddRun <> Неопределено Тогда + Состояние.СледующийШаг = ""ЗагрузитьТесты""; + ИначеЕсли ПараметрЗапуска.xddShutdown = Истина Тогда + Состояние.СледующийШаг = ""ЗавершитьРаботу""; + Иначе + ВызватьИсключение НСтр(""ru = 'xUnit: Я не знаю что мне делать. Нет приказа на выполнение тестов или закрытие.'""); + КонецЕсли; + + ВыполнитьШагПакетногоЗапуска(, Состояние); + +КонецПроцедуры + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапуска(Знач РезультатПредыдущегоШага, Знач Состояние) Экспорт + + ОбработкаОповещения = Новый ОписаниеОповещения(""ВыполнитьШагПакетногоЗапуска"", ЭтаФорма, Состояние, ""ВыполнитьШагПакетногоЗапускаИсключение"", ЭтаФорма); + + Состояние.ТекущийШаг = Состояние.СледующийШаг; + Если Состояние.СледующийШаг = ""ЗагрузитьТесты"" Тогда + НачатьЗагрузкуТестовПакетныйРежим(ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""ЗапуститьТесты"" Тогда + НачатьВыполнениеТестов(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""СоставитьОтчет"" Тогда + СоставитьОтчетОТестировании(РезультатПредыдущегоШага, ОбработкаОповещения); + ИначеЕсли Состояние.СледующийШаг = ""ЗавершитьРаботу"" Тогда + ЗавершитьРаботуСистемы(Ложь); + КонецЕсли; + +КонецПроцедуры // ВыполнитьШагПакетногоЗапуска() + +&НаКлиенте +Процедура ВыполнитьШагПакетногоЗапускаИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач Состояние) Экспорт + + СтандартнаяОбработка = Ложь; + + ТекстОшибки = ""Ошибка при асинхронном режиме пакетного запуска: + |Состояние: + | Текущий шаг: %1 + | Следующий шаг:%2 + | Исключение: %3""; + + // для унылых ретроградов, применяющих < 8.3.6 - придется без СтрШаблон + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%1"", Состояние.ТекущийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%2"", Состояние.СледующийШаг); + ТекстОшибки = СтрЗаменить(ТекстОшибки, ""%3"", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); + + ЗафиксироватьОшибкуВЖурналеРегистрации(""xUnitFor1C.АсинхронныйПакетныйЗапуск"", ТекстОшибки); + Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестовПакетныйРежим(Знач ОбработкаОповещения); + Параметры_xddRun = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddRun; + ИдентификаторЗагрузчика = Параметры_xddRun[0]; + Загрузчик = ЭтаФорма.Плагин(ИдентификаторЗагрузчика); + + ПутьКТестам = Параметры_xddRun[1]; + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗапуститьТесты""; + ОбработкаОповещения.ДополнительныеПараметры.Вставить(""Загрузчик"", Загрузчик); + Загрузчик.НачатьЗагрузку(ОбработкаОповещения, ЭтаФорма, ПутьКТестам); +КонецПроцедуры + +&НаКлиенте +Процедура НачатьВыполнениеТестов(ДеревоТестовОтЗагрузчика, ОбработкаОповещения) + + Загрузчик = ОбработкаОповещения.ДополнительныеПараметры.Загрузчик; + РезультатыТестирования = ЭтаФорма.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); + + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""СоставитьОтчет""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, РезультатыТестирования); + +КонецПроцедуры + +&НаКлиенте +Процедура СоставитьОтчетОТестировании(РезультатыТестирования, ОбработкаОповещения) + + Параметры_xddReport = ОбработкаОповещения.ДополнительныеПараметры.НастройкиШагов.Параметры_xddReport; + Если Не ЗначениеЗаполнено(РезультатыТестирования) или Параметры_xddReport = Неопределено Тогда + // Отчет не нужен + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗавершитьРаботу""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения, Неопределено); + Возврат; + КонецЕсли; + + Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип(""ФиксированныйМассив"") Тогда + НовыйМассивПараметров = Новый Массив; + НовыйМассивПараметров.Добавить(Параметры_xddReport); + Параметры_xddReport = НовыйМассивПараметров; + КонецЕсли; + + ЭкспортируемыеОтчеты = Новый Массив; + + Для Каждого ОчередныеПараметры Из Параметры_xddReport Цикл + + ИдентификаторГенератораОтчета = ОчередныеПараметры[0]; + ГенераторОтчета = ЭтаФорма.Плагин(ИдентификаторГенератораОтчета); + Отчет = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); + ПутьКОтчету = ОчередныеПараметры[1]; + + СтрокаЭкспорта = СтрокаЭкспортируемыхОтчетов(); + СтрокаЭкспорта.Отчет = Отчет; + СтрокаЭкспорта.Путь = ПутьКОтчету; + СтрокаЭкспорта.ГенераторОтчета = ГенераторОтчета; + + ЭкспортируемыеОтчеты.Добавить(СтрокаЭкспорта); + + КонецЦикла; + + ПараметрыДиспетчера = Новый Структура; + ПараметрыДиспетчера.Вставить(""ИндексОтчета"", 0); + ПараметрыДиспетчера.Вставить(""СписокОтчетов"", ЭкспортируемыеОтчеты); + ПараметрыДиспетчера.Вставить(""Финализация"", ОбработкаОповещения); + + ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(, ПараметрыДиспетчера); + +КонецПроцедуры + +&НаКлиенте +Функция СтрокаЭкспортируемыхОтчетов() + Возврат Новый Структура(""Отчет,Путь,ГенераторОтчета""); +КонецФункции + + +&НаКлиенте +Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим(Знач РезультатЭкспорта, Знач ПараметрыДиспетчера) Экспорт + + СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов; + Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексОтчета Тогда + СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексОтчета]; + ГенераторОтчета = СтрокаЭкспорта.генераторОтчета; + + ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1; + ОбработчикЭкспорта = Новый ОписаниеОповещения(""ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим"", ЭтаФорма, ПараметрыДиспетчера, + ""ВыполнитьШагПакетногоЗапускаИсключение"", ЭтаФорма); + ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь); + Иначе + ОбработкаОповещения = ПараметрыДиспетчера.Финализация; + ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = ""ЗавершитьРаботу""; + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + КонецПроцедуры + &НаКлиенте Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) Попытка @@ -2961,7 +3186,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs // { Внешние интерфейсные инструменты &НаКлиенте -Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = """", Знач ИмяФормы = ""Форма"") +Процедура ОткрытьИнструмент(Знач ИмяИнструмента, Знач ПутьИнструмента = """", Знач ИмяФормыИнструмента = ""Форма"") Перем АдресХранилища; // Для встроенного в состав конфигурации браузера тестов @@ -2972,7 +3197,7 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs ИмяИнструмента = ""ПреобразованиеЖурналаДействийПользователя""; КонецЕсли; ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); - ФормаИнструмента = ПолучитьФорму(""Обработка."" + ИмяИнструмента + ""."" + ИмяФормы); + ФормаИнструмента = ПолучитьФорму(""Обработка."" + ИмяИнструмента + ""."" + ИмяФормыИнструмента); ФормаИнструмента.Открыть(); ФормаИнструмента = Неопределено; @@ -2984,17 +3209,30 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + "".epf""; ФайлИнструмента = Новый Файл(ПутьИнструмента); - Если Не ФайлИнструмента.Существует() Тогда - Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">""); - Возврат; - КонецЕсли; - - Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормы)); - НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + ФайлИнструмента.НачатьПроверкуСуществования(Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение1"", ЭтаФорма, Новый Структура(""АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента"", АдресХранилища, ИмяИнструмента, ИмяФормыИнструмента, ФайлИнструмента))); КонецЕсли; КонецПроцедуры +&НаКлиенте +Процедура ОткрытьИнструментЗавершение1(Существует, ДополнительныеПараметры) Экспорт + + АдресХранилища = ДополнительныеПараметры.АдресХранилища; + ИмяИнструмента = ДополнительныеПараметры.ИмяИнструмента; + ИмяФормыИнструмента = ДополнительныеПараметры.ИмяФормыИнструмента; + ФайлИнструмента = ДополнительныеПараметры.ФайлИнструмента; + + + Если Не Существует Тогда + Сообщить(""Инструмент <"" + ИмяИнструмента + ""> не найден в каталоге <"" + ФайлИнструмента.Путь + "">""); + Возврат; + КонецЕсли; + + Оповещение = Новый ОписаниеОповещения(""ОткрытьИнструментЗавершение"", ЭтаФорма, Новый Структура(""ИмяИнструмента, ИмяФормыИнструмента"", ИмяИнструмента, ИмяФормыИнструмента)); + НачатьПомещениеФайла(Оповещение, АдресХранилища, ФайлИнструмента.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + +КонецПроцедуры + &НаКлиенте Функция ПолучитьПутьКПлагинам() // Для встроенного в состав конфигурации браузера тестов @@ -3028,6 +3266,66 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs КонецЕсли; КонецПроцедуры +#Область АсинхронныйAPI + +&НаКлиенте +Процедура НачатьПодключениеВнешнейбработки(Знач ОбработкаОповещения, Знач ФайлОбработки) Экспорт + + Если ПодключенныеВнешниеОбработки.Получить(ФайлОбработки.ИмяБезРасширения) = Неопределено Тогда + ЭтоОтчет = (НРег(ФайлОбработки.Расширение) = "".erf""); + + ПараметрыОповещения = Новый Структура; + ПараметрыОповещения.Вставить(""ФайлОбработки"", ФайлОбработки); + ПараметрыОповещения.Вставить(""ЭтоОтчет"", ЭтоОтчет); + ПараметрыОповещения.Вставить(""ОбработкаЗавершения"", ОбработкаОповещения); + + АдресХранилища = """"; + Оп = Новый ОписаниеОповещения(""ПодключитьВнешнююОбработкуЗавершение"", ЭтаФорма, ПараметрыОповещения); + НачатьПомещениеФайла(Оп, АдресХранилища, ФайлОбработки.ПолноеИмя , Ложь, ЭтаФорма.УникальныйИдентификатор); + Иначе + ВыполнитьОбработкуОповещения(ОбработкаОповещения); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура НачатьЗагрузкуТестов(Знач ОбработкаОповещения, Знач ИдентификаторВыбранногоЗагрузчика, Знач Путь) Экспорт + + ИнициализироватьИндикаторВыполнения(); + + ЭтаФорма.ИдентификаторЗагрузчика = ИдентификаторВыбранногоЗагрузчика; + ФормаЗагрузчика = Плагин(ИдентификаторВыбранногоЗагрузчика); + + ДополнительныеПараметры = Новый Структура; + ДополнительныеПараметры.Вставить(""ОбработкаОповещения"", ОбработкаОповещения); + ДополнительныеПараметры.Вставить(""ИдентификаторВыбранногоЗагрузчика"", ИдентификаторВыбранногоЗагрузчика); + ДополнительныеПараметры.Вставить(""Путь"", Путь); + Обработчик = Новый ОписаниеОповещения(""ЗагрузкаТестовЗавершение"", ЭтаФорма, ДополнительныеПараметры); + ФормаЗагрузчика.НачатьЗагрузку(Обработчик, ЭтаФорма, Путь); + +КонецПроцедуры + +&НаКлиенте +Процедура ЗагрузкаТестовЗавершение(Знач ДеревоОтЗагрузчика, Знач ДополнительныеПараметры) Экспорт + + ЭтаФорма.ДеревоОтЗагрузчика = ДеревоОтЗагрузчика; + ЭлементыДереваТестов = ЭтаФорма.ДеревоТестов.ПолучитьЭлементы(); + ЭлементыДереваТестов.Очистить(); + ЗаполнитьДеревоТестов(ЭтаФорма.ДеревоТестов, ДеревоОтЗагрузчика); + + КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ЭтаФорма.ДеревоТестов); + РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); + + СохранитьВИсториюЗагрузкиТестовНаСервере(ДополнительныеПараметры.ИдентификаторВыбранногоЗагрузчика, ДополнительныеПараметры.Путь); + ОбновитьКомандыИсторииЗагрузкиТестов(); + + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаОповещения); + +КонецПроцедуры + + +#КонецОбласти + &НаСервереБезКонтекста Процедура ПодключитьФайлОбработкиНаСервере(Знач АдресХранилища, Знач ИдентификаторОбработки, ЭтоОтчет = Ложь) Если ЭтоОтчет = Истина Тогда @@ -3229,13 +3527,16 @@ i970DXxgHCspVG9wDoliaofL23C6tMM6z4wPIN79BQ/5HU0rfcdKpIz+U71Zznqs &НаКлиенте Процедура ПодключитьВнешнююОбработкуЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт - ФайлОбработки = ДополнительныеПараметры.ФайлОбработки; ЭтоОтчет = ДополнительныеПараметры.ЭтоОтчет; ПодключитьФайлОбработкиНаСервере(Адрес, ФайлОбработки.ИмяБезРасширения, ЭтоОтчет); ПодключенныеВнешниеОбработки.Вставить(ФайлОбработки.ИмяБезРасширения, Истина); + + Если ДополнительныеПараметры.Свойство(""ОбработкаЗавершения"") Тогда + ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОбработкаЗавершения, Результат); + КонецЕсли; КонецПроцедуры diff --git a/src/xddTestRunner/und/versions b/src/xddTestRunner/und/versions index 2f0e8650..3dfa2e4e 100644 --- a/src/xddTestRunner/und/versions +++ b/src/xddTestRunner/und/versions @@ -1 +1 @@ -{1,13,"",b54a58da-bd31-409f-9bfa-d501666fd6ce,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",0a489650-d574-4b8d-beb1-52c84729ac98,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",ec0f25e8-a99e-4343-8cf3-fec9abf4e1e2,"5070e3c3-f74b-4ecd-9756-1136a230eca2",28f9ef85-fdf5-4fc5-b436-bb39dcd9d948,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",6d6f4dea-3ac8-4e2b-9352-bd2700a73edc,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",51bb908f-7ab3-40a1-883d-be95a0de3e8f,"copyinfo",8b7ce9c2-30d4-4fa0-ae39-91ce61cd7ba8,"ed07b230-8bf7-4423-b861-a31f23c7471f",bb710489-69d2-4c46-a871-cab02804efec,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",a2c12ed7-5c3c-4e39-a751-1a807805302e,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",32a70759-e6a2-48e0-a2af-06def88feafc,"version",4aa519ee-31d1-4a55-b041-3d3b201fa3e1,"versions",ce7042b0-56e9-46bf-878f-00da109af25a} \ No newline at end of file +{1,13,"",4ee92d48-3465-4190-a6b2-89c8046120a5,"11ad5c96-c434-4088-bf66-ddff06c57ed8.0",97d33b2a-1ced-4fe7-adaa-458525870b8f,"11ad5c96-c434-4088-bf66-ddff06c57ed8.1",a42f0aa8-d4f1-4347-81f0-86a375c51151,"5070e3c3-f74b-4ecd-9756-1136a230eca2",5d09e199-a840-4282-bf27-c8d230c0707f,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf",c5d41f51-3bd7-46c8-9b3b-02b8769708c1,"a1ce7ef7-f372-4589-b899-7fbf88efa7bf.0",a09cb0db-6160-4204-944a-869e9eb12a6e,"copyinfo",7bfad022-4550-462b-9f5b-1e9a9f92d96f,"ed07b230-8bf7-4423-b861-a31f23c7471f",b9fd82ce-df2b-4442-b2f9-fffbe95b2ba6,"ed07b230-8bf7-4423-b861-a31f23c7471f.0",a41ac106-1946-481e-9106-23a1fcd49ffc,"ed07b230-8bf7-4423-b861-a31f23c7471f.1",d2376067-c9d3-4379-9abc-b96f699d83ed,"root",83fa5f71-7a3b-4d18-9689-57dadc8be12c,"version",bf85a2ee-b3e3-42ff-87dd-097b36a0b8b4,"versions",e393ba46-22d3-491a-b343-944f92f31973} \ No newline at end of file diff --git a/xddTestRunner.epf b/xddTestRunner.epf index 5935879d846797b5dbaa1041cfad1829c9ec409d..6a86b83a168a427fc1d823445313a9f4ce65ff43 100644 GIT binary patch delta 71023 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�=}nPI#=v)>^y{an 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