| Newsgroups |
gmane.comp.java.junit.user |
| Message-ID |
<CAM21Rt9XQyAXphovp=cEbKeYRgx1=ts0fWoMVO2e1G2_KCewqw@mail.gmail.com> |
--bcaec51719e1cb801a051669cfb7
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Perhaps the right question would be why do you need a custom class loader,
Johannes?
If it's separation of test suites from each other then even if it's
technically feasible, it may eventually bite you (it's difficult to detect
memory leaks, for example).
If I may point you at an alternative solution then Lucene/ Solr has a test
harness that attempts to isolate tests from each other using other means
(detecting stray threads left over after a test completes, detecting
left-over assignments to static fields that contribute to OOMs, parallel
execution of tests by forking suites to concurrent JVMs).
Dawid
On Mon, May 18, 2015 at 10:55 PM, Johannes Ernst [email protected]
[junit] <[email protected]> wrote:
>
>
> Thanks, Aaron. I=E2=80=99ve been poking around the code, and found that
>
> 1) it isn=E2=80=99t a supported use case
> 2) it probably wouldn=E2=80=99t be too hard to come up with a junit patch=
to
> enable it, assuming the entry point would be the API not main()
>
> but also, given that I=E2=80=99m invoking junit from maven/surefire:
>
> 3) it would be much harder to convince maven=E2=80=99s surefire plugin to=
use a
> custom classloader and somehow pass it over to junit
>
> So =E2=80=A6 unless some major work is done by two projects =E2=80=94 sur=
efire and junit =E2=80=94
> I think the answer to my question about whether it can be done is No.
>
> P.S. If anybody is more knowledgeable about this than me (very easy to
> accomplish, I am not familiar with either code base), please correct me i=
f
> I=E2=80=99m wrong.
>
> Cheers,
>
>
> Johannes.
>
> On May 17, 2015, at 23:59, Aaron VonderHaar [email protected]
> [junit] <[email protected]> wrote:
>
>
> I know the robolectric test runner [1] sets up a custom ClassLoader, but
> my understanding is that it has to do some weird things to make that work
> due to the fact that the test class has already been loaded by the time t=
he
> TestRunner starts and as a result the classes being tested have already
> been loaded. I don't know much about the details beyond that.
>
> [1]:
> https://github.com/robolectric/robolectric/blob/master/robolectric/src/ma=
in/java/org/robolectric/RobolectricTestRunner.java
>
> On Thu, May 14, 2015 at 5:34 PM, [email protected] [junit] <
> [email protected]> wrote:
>
>>
>>
>> I=E2=80=99d like need to use a custom ClassLoader for my tests. Can it b=
e done?
>>
>> Thanks,
>>
>>
>>
>> Johannes.
>>
>>
>>
>>
>
>
>=20=20
>
--bcaec51719e1cb801a051669cfb7
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|**| -->
<div dir=3D"ltr"><br><div>Perhaps the right question would be why do you ne=
ed a custom class loader, Johannes?=C2=A0</div><div><br></div><div>If it=
9;s separation of test suites from each other then even if it's technic=
ally feasible, it may eventually bite you (it's difficult to detect mem=
ory leaks, for example).</div><div><br></div><div>If I may point you at an =
alternative solution then Lucene/ Solr has a test harness that attempts to =
isolate tests from each other using other means (detecting stray threads le=
ft over after a test completes, detecting left-over assignments to static f=
ields that contribute to OOMs, parallel execution of tests by forking suite=
s to concurrent JVMs).</div><div><br></div><div>Dawid</div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On Mon, May 18, 2015 at 10:=
55 PM, Johannes Ernst <a href=3D"mailto:[email protected]">johannes.=
[email protected]</a> [junit] <span dir=3D"ltr"><<a href=3D"mailto:junit@y=
ahoogroups.com" target=3D"_blank">[email protected]</a>></span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft: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>Thanks, Aaron. I=E2=80=99ve been poking around the code, and found=
that</p><div><br></div><div>1) it isn=E2=80=99t a supported use case</div>=
<div>2) it probably wouldn=E2=80=99t be too hard to come up with a junit pa=
tch to enable it, assuming the entry point would be the API not main()</div=
><div><br></div><div>but also, given that I=E2=80=99m invoking junit from m=
aven/surefire:</div><div><br></div><div>3) it would be much harder to convi=
nce maven=E2=80=99s surefire plugin to use a custom classloader and somehow=
pass it over to junit</div><div><br></div><div>So =E2=80=A6 unless some ma=
jor work is done by two projects =E2=80=94 surefire and junit =E2=80=94 I t=
hink the answer to my question about whether it can be done is No.</div><di=
v><br></div><div>P.S. If anybody is more knowledgeable about this than me (=
very easy to accomplish, I am not familiar with either code base), please c=
orrect me if I=E2=80=99m wrong.</div><div><br></div><div>Cheers,</div><div>=
<br></div><div><br></div><div>Johannes.</div><span class=3D""><div><br><div=
><blockquote type=3D"cite"><div>On May 17, 2015, at 23:59, Aaron VonderHaar=
<a href=3D"mailto:[email protected]" target=3D"_blank">gruen0aermel@g=
mail.com</a> [junit] <<a href=3D"mailto:[email protected]" target=3D=
"_blank">[email protected]</a>> wrote:</div><br><div><div style=3D"f=
ont-size:13px;font-family:Arial,helvetica,clean,sans-serif;font-style:norma=
l;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:s=
tart;text-indent:0px;text-transform:none;white-space:normal"><div><div styl=
e=3D"font-family:Georgia"><div style=3D"margin:0px 0px 1em"><br></div><div =
dir=3D"ltr">I know the robolectric test runner [1] sets up a custom ClassLo=
ader, but my understanding is that it has to do some weird things to make t=
hat work due to the fact that the test class has already been loaded by the=
time the TestRunner starts and as a result the classes being tested have a=
lready been loaded.=C2=A0 I don't know much about the details beyond th=
at.<div><br></div><div>[1]:=C2=A0<a href=3D"https://github.com/robolectric/=
robolectric/blob/master/robolectric/src/main/java/org/robolectric/Robolectr=
icTestRunner.java" target=3D"_blank">https://github.com/robolectric/robolec=
tric/blob/master/robolectric/src/main/java/org/robolectric/RobolectricTestR=
unner.java</a></div></div><div class=3D"gmail_extra"><br><div class=3D"gmai=
l_quote">On Thu, May 14, 2015 at 5:34 PM,<span>=C2=A0</span><a href=3D"mail=
to:[email protected]" target=3D"_blank">[email protected]</a>=
<span>=C2=A0</span>[junit]<span>=C2=A0</span><span dir=3D"ltr"><<a href=
=3D"mailto:[email protected]" target=3D"_blank">[email protected]</=
a>></span><span>=C2=A0</span>wrote:<br><blockquote class=3D"gmail_quote"=
style=3D"margin:0px 0px 0px 4px;border-left-width:1px;border-left-color:rg=
b(204,204,204);border-left-style:solid"><u></u><div style=3D"background-col=
or:rgb(255,255,255)"><span>=C2=A0</span><div><div><div><p style=3D"margin:0=
px 0px 1em">I=E2=80=99d like need to use a custom ClassLoader for my tests.=
Can it be done?<br><br>Thanks,<br><br><br><br>Johannes.</p><p style=3D"mar=
gin:0px 0px 1em"><span><br></span></p><div style=3D"margin:0px 0px 1em"><br=
></div></div><div style=3D"color:rgb(255,255,255);min-height:0px"></div></d=
iv></div></div></blockquote></div><br></div><div style=3D"margin:0px 0px 1e=
m"><br></div></div><div style=3D"color:rgb(255,255,255);min-height:0px"></d=
iv></div></div></div></blockquote></div><br></div></span><p></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><br></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: Dawid Weiss <[email protected]> <hr s=
tyle=3D"height:2px ; border-width:0; color:#E3E3E3; background-color:#E3E3E=
3;">
</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=3D24656/stime=3D1432018598" 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=3DX3oDMTJlYWVuNXRpBF9TAzk3MzU5NzE0BGdycElkAzI0MjMzMjgEZ3Jwc3BJZAM=
xNzA1MDA2OTA1BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTQzMjAxODU5OA--" 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=3DX3oDMTJmNGk4aGR2BF9TAzk3MzU5NzE0BGdycElkAzI0MjMzMjgE=
Z3Jwc3BJZAMxNzA1MDA2OTA1BHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzE0MzIwMTg1OTg-" s=
tyle=3D"text-decoration: none;">New Members</a></span>
<span class=3D"ct" style=3D"color: #ff7900;">4</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=3DX3oDMTJkMzBsdTAzBF9TAzk3ND=
c2NTkwBGdycElkAzI0MjMzMjgEZ3Jwc3BJZAMxNzA1MDA2OTA1BHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxNDMyMDE4NTk4" 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;"> • <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> • <a href=3D"mailto:junit-unsubscribe@yahoogroup=
s.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubscribe</=
a> • <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>
--bcaec51719e1cb801a051669cfb7--