Re: junit 4 - generating a test suite at runtime for each pair of tests.

"Kevin Cooney ☕ [email protected] [junit]" <[email protected]> Tue, 30 Jun 2015 01:36:10 -0700
Newsgroups gmane.comp.java.junit.user
Message-ID <CADW0UyTv_qzFuKqSbUbFEDznOXRxaOrM4u1DZa3mMHdvJJAV3w@mail.gmail.com>
--001a1135d796293e0b0519b81955
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

You could use org.junit.runner.Request.filterWith() to run a subset of the
tests:

Request request =3D Request.classes(MyTest.java)
.filterWith(filter);
new JUnitCore.run(request);

The filter would include two tests to run.
On Jun 29, 2015 11:38 PM, "Ray Tayek [email protected] [junit]" <
[email protected]> wrote:

>
>
> On 6/24/2015 6:56 AM, David Saff [email protected] [junit] wrote:
>
>
> I'm with Kevin Cooney here; there likely is a way to get the pair-wise
> suite you're asking for, but for the problem of "find the pairing that's
> causing the problem as quickly as possible", binary search with @Ignore
> does seem highly likely to be the answer.
>
> very tedious if you have many tests.
>
> thanks
>
>
> On Tue, Jun 23, 2015 at 7:45 PM, Ray Tayek [email protected] [junit] <
> [email protected]> wrote:
>
>>
>>
>>  On 6/23/2015 3:44 AM, Paul King [email protected] [junit] wrote:
>>
>>
>>
>>
>> I would guess that he wants the pair testing to help track down "global
>> state" problem
>> rather than as a permanent measure.
>>
>> yes. i have many tests that use sockets and threads.
>>
>> i was hoping to get them by using: @RunWith(Suite.class)
>> @Suite.SuiteClasses({PairsTestCase.class}) public class
>> RunWithSuiteTextCase {] and some kind of filtering, but i am getting los=
t.
>>
>> thanks
>>
>>
>> On 23/06/2015 7:07 PM, Colin Vipurs [email protected] [junit] wrote:
>> > Hi Ray,
>> >
>> > It sounds like one (or more) of your tests is manipulating global stat=
e
>> which is affecting one (or more) other tests, hence the reason for the
>> failing test passing when run by itself. Rather than generating a
>> combination of tests it would be much better to isolate the state
>> manipulation so that it can be controlled correctly from within the test=
.
>> >
>> > On Tue, Jun 23, 2015 at 2:49 AM, Ray Tayek [email protected]
>> <mailto:[email protected]> <[email protected]> [junit] <
>> [email protected] <mailto:[email protected]>
>> <[email protected]>> wrote:
>> >
>> > __
>> >
>> > using junit 4, i have a test case
>> <http://xunitpatterns.com/Testcase%20Class.html>
>> <http://xunitpatterns.com/Testcase%20Class.html> that has n test methods
>> <http://xunitpatterns.com/Test%20Method.html>
>> <http://xunitpatterns.com/Test%20Method.html>, one of the test methods
>> fails when the test case is run. and this failing test method succeeds w=
hen
>> run by itself.
>> >
>> > i would like to dynamically (at run time) create a set of test suites
>> <http://xunitpatterns.com/Test%20Suite%20Object.html>
>> <http://xunitpatterns.com/Test%20Suite%20Object.html> (or test cases),
>> one for each pair of test methods in the test case.
>> >
>> > so a test case with 3 test methods would generate 3!=3D6 test suites (=
or
>> test cases).
>> >
>> > thanks
>> >
>> > --
>> > Honesty is a very expensive gift. So, don't expect it from cheap peopl=
e
>> - Warren Buffett=EF=BB=BF
>> > http://tayek.com/
>> >
>> >
>> >
>> >
>> > --
>> > Maybe she awoke to see the roommate's boyfriend swinging from the
>> chandelier wearing a boar's head.
>> >
>> > Something which you, I, and everyone else would call "Tuesday", of
>> course.
>> >
>> >
>>
>> ---
>> This email has been checked for viruses by Avast antivirus software.
>> https://www.avast.com/antivirus
>>
>>
>>
>> --
>> Honesty is a very expensive gift. So, don't expect it from cheap people =
- Warren Buffett=EF=BB=BFhttp://tayek.com/
>>
>>
>
>
> --
> Honesty is a very expensive gift. So, don't expect it from cheap people -=
 Warren Buffett=EF=BB=BFhttp://tayek.com/
>
>=20=20
>

--001a1135d796293e0b0519b81955
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable





<head>

<style type=3D"text/css">
<!--

/* start of attachment style */
       .ygrp-photo-title{
         clear: both;
         font-size: smaller;
         height: 15px;
         overflow: hidden;
         text-align: center;
         width: 75px;
       }
       div.ygrp-photo{
         background-position: center;
         background-repeat: no-repeat;
         background-color: white;
         border: 1px solid black;
         height: 62px;
         width: 62px;
       }

       div.photo-title=20
         a,
         div.photo-title a:active,
         div.photo-title a:hover,
         div.photo-title a:visited {
           text-decoration: none;=20
       }

       div.attach-table div.attach-row {
         clear: both;
       }

       div.attach-table div.attach-row div {
         float: left;
         /* margin: 2px;*/
       }

       p {
         clear: both;
         padding: 15px 0 3px 0;
	 overflow: hidden;
       }

       div.ygrp-file {
         width: 30px;
         valign: middle;
       }
       div.attach-table div.attach-row div div a {
         text-decoration: none;
       }

       div.attach-table div.attach-row div div span {
         font-weight: normal;
       }

       div.ygrp-file-title {
         font-weight: bold;
       }
 /* end of attachment style */
        -->
        </style>
        </head>
<html>
<head>
<style type=3D"text/css">
<!--
#ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
-->
</style>
</head>
<body>



<!-- |**|begin egp html banner|**| -->

<br><br>

<!-- |**|end egp html banner|**| -->


<p dir=3D"ltr">You could use org.junit.runner.Request.filterWith() to run a=
 subset of the tests:</p>
<p dir=3D"ltr">Request request =3D Request.classes(MyTest.java)<br>
    .filterWith(filter);<br>
new JUnitCore.run(request);</p>
<p dir=3D"ltr">The filter would include two tests to run.</p>
<div class=3D"gmail_quote">On Jun 29, 2015 11:38 PM, &quot;Ray Tayek <a hre=
f=3D"mailto:[email protected]">[email protected]</a> [junit]&quot; &lt;<a hre=
f=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:<br =
type=3D"attribution"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<u></u>









=20
<div style=3D"background-color:#fff">
<span>=C2=A0</span>


<div>
  <div>


    <div>
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p>
=20=20
=20=20
    <div>On 6/24/2015 6:56 AM, David Saff
      <a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]<=
/a> [junit] wrote:<br>
    </div>
    <blockquote type=3D"cite"> <span>=C2=A0</span>
=20=20=20=20=20=20
          <div>
            <div dir=3D"ltr">I&#39;m with Kevin Cooney here; there likely i=
s a
              way to get the pair-wise suite you&#39;re asking for, but for
              the problem of &quot;find the pairing that&#39;s causing the
              problem as quickly as possible&quot;, binary search with
              @Ignore does seem highly likely to be the answer.</div>
          </div>
=20=20=20=20=20=20=20=20
=20=20=20=20=20=20
    </blockquote>
    very tedious if you have many tests. <br>
    <br>
    thanks<br>
    <blockquote type=3D"cite">
      <div>
        <div>
          <div>
            <div class=3D"gmail_extra"><br>
              <div class=3D"gmail_quote">On Tue, Jun 23, 2015 at 7:45 PM,
                Ray Tayek <a href=3D"mailto:[email protected]" target=3D"_bl=
ank">[email protected]</a>
                [junit] <span dir=3D"ltr">&lt;<a href=3D"mailto:junit@yahoo=
groups.com" target=3D"_blank">[email protected]</a>&gt;</span>
                wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"border-left:1px =
#ccc solid">
                  <div style=3D"background-color:#fff">
                    <span>=C2=A0</span>
                    <div>
                      <div>
                        <div>
                          <p><span> </span></p>
                          <div>On 6/23/2015 3:44 AM, Paul King <a href=3D"m=
ailto:[email protected]" target=3D"_blank">[email protected]</a>
                            [junit] wrote:<br>
                          </div>
                          <blockquote type=3D"cite"> <span>=C2=A0</span>
                            <div>
                              <p><br>
                                I would guess that he wants the pair
                                testing to help track down &quot;global
                                state&quot; problem<br>
                                rather than as a permanent measure.<br>
                              </p>
                            </div>
                          </blockquote>
                          yes. i have many tests that use sockets and
                          threads.<br>
                          <br>
                          i was hoping to get them by using:
                          @RunWith(Suite.class)
                          @Suite.SuiteClasses({PairsTestCase.class})
                          public class RunWithSuiteTextCase {] and some
                          kind of filtering, but i am getting lost.<br>
                          <br>
                          thanks<span><br>
                            <br>
                            <blockquote type=3D"cite">
                              <div>
                                <div>
                                  <div>
                                    <p> <br>
                                      On 23/06/2015 7:07 PM, Colin
                                      Vipurs <a href=3D"mailto:zodiaczx6@gm=
ail.com" target=3D"_blank">[email protected]</a>
                                      [junit] wrote:<br>
                                      &gt; Hi Ray,<br>
                                      &gt;<br>
                                      &gt; It sounds like one (or more)
                                      of your tests is manipulating
                                      global state which is affecting
                                      one (or more) other tests, hence
                                      the reason for the failing test
                                      passing when run by itself. Rather
                                      than generating a combination of
                                      tests it would be much better to
                                      isolate the state manipulation so
                                      that it can be controlled
                                      correctly from within the test.<br>
                                      &gt;<br>
                                      &gt; On Tue, Jun 23, 2015 at 2:49
                                      AM, Ray Tayek <a href=3D"mailto:rtaye=
[email protected]" target=3D"_blank">[email protected]</a>
                                      <a href=3D"mailto:[email protected]" t=
arget=3D"_blank">&lt;mailto:[email protected]&gt;</a>
                                      [junit] &lt;<a href=3D"mailto:junit@y=
ahoogroups.com" target=3D"_blank">[email protected]</a>
                                      <a href=3D"mailto:[email protected]=
om" target=3D"_blank">&lt;mailto:[email protected]&gt;</a>&gt;
                                      wrote:<br>
                                      &gt;<br>
                                      &gt; __<br>
                                      &gt;<br>
                                      &gt; using junit 4, i have a test
                                      case <a href=3D"http://xunitpatterns.=
com/Testcase%20Class.html" target=3D"_blank">&lt;http://xunitpatterns.com/T=
estcase%20Class.html&gt;</a>
                                      that has n test methods <a href=3D"ht=
tp://xunitpatterns.com/Test%20Method.html" target=3D"_blank">&lt;http://xun=
itpatterns.com/Test%20Method.html&gt;</a>,
                                      one of the test methods fails when
                                      the test case is run. and this
                                      failing test method succeeds when
                                      run by itself.<br>
                                      &gt;<br>
                                      &gt; i would like to dynamically
                                      (at run time) create a set of test
                                      suites <a href=3D"http://xunitpattern=
s.com/Test%20Suite%20Object.html" target=3D"_blank">&lt;http://xunitpattern=
s.com/Test%20Suite%20Object.html&gt;</a>
                                      (or test cases), one for each pair
                                      of test methods in the test case.<br>
                                      &gt;<br>
                                      &gt; so a test case with 3 test
                                      methods would generate 3!=3D6 test
                                      suites (or test cases).<br>
                                      &gt;<br>
                                      &gt; thanks<br>
                                      &gt;<br>
                                      &gt; --<br>
                                      &gt; Honesty is a very expensive
                                      gift. So, don&#39;t expect it from
                                      cheap people - Warren Buffett=EF=BB=
=BF<br>
                                      &gt; <a href=3D"http://tayek.com/" ta=
rget=3D"_blank">http://tayek.com/</a><br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt;<br>
                                      &gt; --<br>
                                      &gt; Maybe she awoke to see the
                                      roommate&#39;s boyfriend swinging fro=
m
                                      the chandelier wearing a boar&#39;s
                                      head.<br>
                                      &gt;<br>
                                      &gt; Something which you, I, and
                                      everyone else would call
                                      &quot;Tuesday&quot;, of course.<br>
                                      &gt;<br>
                                      &gt; <br>
                                      <br>
                                      ---<br>
                                      This email has been checked for
                                      viruses by Avast antivirus
                                      software.<br>
                                      <a href=3D"https://www.avast.com/anti=
virus" target=3D"_blank">https://www.avast.com/antivirus</a><br>
                                      <br>
                                    </p>
                                  </div>
                                </div>
                              </div>
                            </blockquote>
                            <br>
                            <br>
                            <pre cols=3D"72">--=20
Honesty is a very expensive gift. So, don&#39;t expect it from cheap people=
 - Warren Buffett=EF=BB=BF
<a href=3D"http://tayek.com/" target=3D"_blank">http://tayek.com/</a></pre>
                          </span> </div>
                      </div>
                    </div>
                  </div>
                </blockquote>
              </div>
              <br>
            </div>
          </div>
=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
    </div></div></blockquote>
    <br>
    <br>
    <pre cols=3D"72">--=20
Honesty is a very expensive gift. So, don&#39;t expect it from cheap people=
 - Warren Buffett=EF=BB=BF
<a href=3D"http://tayek.com/" target=3D"_blank">http://tayek.com/</a></pre>
=20=20

</p>

    </div>
=20=20=20=20=20

=20=20=20=20
    <div style=3D"color:#fff;min-height:0"></div>


</div>



=20=20






</blockquote></div>




<!-- |**|begin egp html banner|**| -->

<br>


<br>

<!-- |**|end egp html banner|**| -->


<div width=3D"1" style=3D"color: white; clear: both;"/>__._,_.___</div>

=20=20=20=20=20=20
=20=20

=20=20=20=20
    <div id=3D"fromDMARC" style=3D"clear:both; margin-top: 10px;">
         <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; backgroun=
d-color:#E3E3E3;">
         Posted by: =3D?UTF-8?Q?Kevin_Cooney_=3DE2=3D98=3D95?=3D &lt;kcoone=
[email protected]&gt;         <hr style=3D"height:2px ; border-width:0; color:#E3=
E3E3; background-color:#E3E3E3;">
    </div>
<!-- Start Recommendations -->
<!-- End Recommendations -->



<!-- |**|begin egp html banner|**| -->

  <img src=3D"http://geo.yahoo.com/serv?s=3D97476590/grpId=3D2423328/grpspI=
d=3D1705006905/msgId=3D24678/stime=3D1435659015" width=3D"1" height=3D"1"> =
<br>

<!-- |**|end egp html banner|**| -->

=20=20
<!-- |**|begin egp html banner|**| -->

<br>



=20=20=20
=20=20=20=20=20
=20
        <!-- |**|begin egp html banner|**| -->
        <div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-fam=
ily: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

        <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tr=
ansform: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/junit/=
info;_ylc=3DX3oDMTJlbmZ1aDZyBF9TAzk3MzU5NzE0BGdycElkAzI0MjMzMjgEZ3Jwc3BJZAM=
xNzA1MDA2OTA1BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQzNTY1OTAxNQ--" style=3D"tex=
t-decoration: none;">Visit Your Group</a></span>

     <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
            <li style=3D"border-right: 1px solid #000; font-weight: 700; di=
splay: inline; padding: 0 5px; margin-left: 0;">
      <span class=3D"cat"><a href=3D"https://groups.yahoo.com/neo/groups/ju=
nit/members/all;_ylc=3DX3oDMTJmMnZscTBjBF9TAzk3MzU5NzE0BGdycElkAzI0MjMzMjgE=
Z3Jwc3BJZAMxNzA1MDA2OTA1BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE0MzU2NTkwMTU-" s=
tyle=3D"text-decoration: none;">New Members</a></span>
      <span class=3D"ct" style=3D"color: #ff7900;">2</span>
    </li>
                                              </ul>
  </div>


<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJkbzc2cjRqBF9TAzk3ND=
c2NTkwBGdycElkAzI0MjMzMjgEZ3Jwc3BJZAMxNzA1MDA2OTA1BHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxNDM1NjU5MDE1" style=3D"float: left;"><img src=3D"http://l.yimg.com/r=
u/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height=3D"15"=
 width=3D"137" alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;"> &bull; <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> &bull; <a href=3D"mailto:junit-unsubscribe@yahoogroup=
s.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubscribe</=
a> &bull; <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms/" sty=
le=3D"text-decoration: none;">Terms of Use</a> </div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

=20=20=20


  <br>

<!-- |**|end egp html banner|**| -->


<div style=3D"color: white; clear: both;"/>__,_._,___</div>
</body>

</html>

--001a1135d796293e0b0519b81955--