Den 12. mai 2010 kl. 20.19 skrev Tom Nelson <tomnelson...@gmail.com>:
> > Hi Dan, > I have insight on this and I think that it is a surefire bug when > using > TestNG and AbstractTestNGSpringContextTests which requires > subclassing and > uses @BeforeMethod, @AfterMethod, > the default generated suite file generates something like: > > <test name="Command line test(failed)" junit="false" > annotations="JDK"> > <classes> > <class name="com.workscape.orgchartconfig.OrgChartSyncGetTest"> > <methods> > <include name="springTestContextBeforeTestMethod"/> > <include name="beforeClass"/> > <include name="beforeMethod"/> > <include name="afterMethod"/> > <include name="springTestContextAfterTestMethod"/> > <include name="springTestContextPrepareTestInstance"/> > <include name="orgChartSyncGetTest"/> > </methods> > </class> > </classes> > </test> > > -- it appears that annotated methods are being incorrectly treated > as test > method. (I'm using 2.4.2) > By explicitly providing a suite file like: > > <test name="this should work" junit="false" annotations="JDK" > verbose="2"> > <classes> > <class name="com.workscape.dao.DAOTest" /> > </classes> > </test> > <test name="this should work 2" junit="false" annotations="JDK" > verbose="2"> > <classes> > <class name="com.workscape.dao.DAONegativeTest" /> > </classes> > </test> > > I was able to workaround the issue. > > dfabulich wrote: >> >> roadtripryan wrote: >> >>> I am trying to test using TestNG/Spring/ and Maven Surefire 2.4.1. >>> >>> My test suite runs great from within eclipse as individual tests >>> or as a >>> whole suite. When I try and run the tests in Maven Surefire, >>> however, >>> they >>> fail. It appears Surefire is not calling the correct @BeforeMethod >>> method. >>> (When running the whole suite, or an individual test.) >> >> As you might expect, all Surefire does is call TestNG directly; we >> don't >> directly call @BeforeMethod, @Test, etc. >> >>> From testing it, it seems Surefire calls the @BeforeMethod in the >>> base >>> class, but not in extending classes if they override it. I am >>> extending >>> Springs AbstractTestNGSpringContextTests, and it is calling the base >>> class >>> methods, not my extending classes @BeforeMethod and @AfterMethod. >>> Interestingly, it seems to call the correct @BeforeClass method. >> >> If you're having a problem with a TestNG test that you believe >> should be >> working, please file a bug on jira.codehaus.org; please also attach a >> minimal Maven project that reproduces the problem. Ideally a test >> like >> this should be nothing more than a pom.xml file and a couple of >> TestNG >> classes in appropriate directories. (Please don't include any spring >> classes in this test case unless it's absolutely necessary to do so.) >> >> -Dan >> >> > > -- > View this message in context: > http://old.nabble.com/TestNG-%40BeforeMethod-not-working-on-subclasses.-tp15418799p28539411.html > Sent from the Surefire - Developer mailing list archive at Nabble.com. >