BTW, if you're looking the do a JUnit 3 to 4 migration on any other code
you got lying around, here are the regular expressions I used:
// Add @Test
Replace:
^[ \t]+(public +void +test)
With:
@Test\n $1
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove double @Test's on already @Test annotated files
Replace:
^[ \t]+@Test\n[ \t]+@Test
With:
@Test
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove all empty setUp's
Replace:
^[ \*]+((public|protected) +)?void
+setUp\(\)[^\{]*\{\s*(super\.setUp\(\);)?\s*\}\n([ \t]*\n)?
With nothing
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Add @Before to all setUp's
Replace:
^([ \t]+@Override\n)?[ \t]+((public|protected) +)?(void +setUp\(\))
With:
@Before\n public void setUp()
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove double @Before's on already @Before annotated files
Replace:
^[ \t]+@Before\n[ \t]+@Before
With:
@Before
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove all empty tearDown's
Replace:
^[ \*]+((public|protected) +)?void
+tearDown\(\)[^\{]*\{\s*(super\.tearDown\(\);)?\s*\}\n([ \t]*\n)?
With nothing
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Add @After to all tearDown's
Replace:
^([ \t]+@Override\n)?[ \t]+((public|protected) +)?(void +tearDown\(\))
With:
@After\n public void tearDown()
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove double @After's on already @After annotated files
Replace:
^[ \t]+@After\n[ \t]+@After
With:
@After
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove old imports, add new imports
Replace:
^([ \t]*import[ \t]+junit\.framework\.Assert;\n)?[ \t]*import[
\t]+junit\.framework\.TestCase;
With:
import org.junit.After;\nimport org.junit.Before;\nimport
org.junit.Test;\nimport static org.junit.Assert.*;
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Remove all extends TestCase
Replace:
[ \t]+extends[ \t]+TestCase[ \t]+\{
With:
{
Regular Expression: on
Case sensitive: on
File name filter:
*Test.java
// Look for import junit.framework;
Find:
import junit\.framework
Manually fix
Regular Expression: on
Case sensitive: on
// Look for ignored tests (FIXME, disabled, ...)
Find:
public[ \t]+void[ \t]+\w+test
Manually fix
Regular Expression: on
Case sensitive: on
// Look for dummy/empty tests
Find:
public[ \t]+void[ \t]+test[\w\d]*\(\s*\)\s*\{\s*(//[^\n]*)?\s*\}
Manually fix
Regular Expression: on
Case sensitive: on
Op 26-12-10 20:06, Geoffrey De Smet schreef:
Hi guys,
I've updated all testcases on master to use JUnit 4 style
(except for drools-eclipse and the non-active parts of drools-grid).
The main reason is so we now let hudson report how many testcases are
ignored (annoted with @Ignore instead of disabled).
Some notes:
* *Don't disable testcases by prefixing them with FIXME_ or
disabled_ or by commenting out @Test*
o *Instead, add the @Ignore annotation*
+ This way hudson gives us a report on how many
testcases have been ignored.
* *Don't use try-catch to test if an exception is thrown. Use
@Test(expected = MyException.class)*
o I haven't migrated this in all testcases, as I couldn't
automate that.
o Please fix it in any code you come across.
* To use assertions like assertEquals(a,b), just add this import:
o import static org.junit.Assert.*;
* Don't import anything from junit.framework.*.
o Import only from org.junit.*
o Configure your Eclipse/Intellij to not propose those
imports to keep mistakes to a minimum.
* TestSuites have been removed.
o Use your Eclipse/IntelliJ to single out tests, packages of
tests or modules.
o They bring extra maintenance (and seem to be seen as
legacy since junit 4?)
* Testcases that print out their own name, no longer print out
their own name
o The junit runner prints out the name already
+ Otherwise it looks like it's run twice (while it's not)
I hope this push (many files were changed) doesn't cause to many merge
conflicts.
If it does: just take your revision and upgrade your file to junit 4
manually.
Learn more:
- Junit 4 in 60 seconds:
http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/
--
With kind regards,
Geoffrey De Smet
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev
--
With kind regards,
Geoffrey De Smet