Uploaded image for project: 'XWiki Commons'
  1. XWiki Commons
  2. XCOMMONS-105

Upgrade to JUnit 4.9

    XMLWordPrintable

Details

    Description

      https://github.com/KentBeck/junit/blob/master/doc/ReleaseNotes4.9.txt

      ## Summary of Changes in version 4.9, final ##
      
      Release theme: Test-class and suite level Rules.
      
      ### ClassRule ###
      
      The `ClassRule` annotation extends the idea of method-level Rules,
      adding static fields that can affect the operation of a whole class.  Any
      subclass of `ParentRunner`, including the standard `BlockJUnit4ClassRunner` 
      and `Suite` classes, will support `ClassRule`s.
      
      For example, here is a test suite that connects to a server once before
      all the test classes run, and disconnects after they are finished:
      
      	@RunWith(Suite.class)
      	@SuiteClasses({A.class, B.class, C.class})
      	public class UsesExternalResource {
      		public static Server myServer= new Server();
      
      		@ClassRule
      		public static ExternalResource resource= new ExternalResource() {
      			@Override
      			protected void before() throws Throwable {
      				myServer.connect();
      			};
      
      			@Override
      			protected void after() {
      				myServer.disconnect();
      			};
      		};
      	}
      
      ### TestRule ###
      
      In JUnit 4.9, fields that can be annotated with either `@Rule` or `@ClassRule`
      should be of type `TestRule`.  The old `MethodRule` type, which only made sense
      for method-level rules, will still work, but is deprecated.
      
      Most built-in Rules have been moved to the new type already, in a way that
      should be transparent to most users.  `TestWatchman` has been deprecated,
      and replaced by `TestWatcher`, which has the same functionality, but implements
      the new type.
      
      ### Maven support ###
      
      Maven bundles have, in the past, been uploaded by kind volunteers.  Starting
      with this release, the JUnit team is attempting to perform this task ourselves.
      
      ### LICENSE checked in ###
      
      The Common Public License that JUnit is released under is now included
      in the source repository.
      
      ### Bug fixes ###
      
      - github#98: assumeTrue() does not work with expected exceptions
      - github#74: Categories + Parameterized
        
        In JUnit 4.8.2, the Categories runner would fail to run correctly
        if any contained test class had a custom Runner with a structure
        significantly different from the built-in Runner.  With this fix,
        such classes can be assigned one or more categories at the class level,
        and will be run correctly.  Trying to assign categories to methods within
        such a class will flag an error.
      
      - github#38: ParentRunner filters more than once
      
        Thanks to `@reinholdfuereder`
      
      - github#248: protected BlockJUnit4ClassRunner#rules method removed from 4.8.2
      - github#187: Accidental dependency on Java 6
      
      Thanks to `@kcooney` for:
      
      - github#163: Bad comparison failure message when using assertEquals(String, String)
      - github#227: ParentRunner now assumes that getChildren() returns a modifiable list
      
      ### Minor changes ###
      
      - Backed out unused folder "experimental-use-of-antunit", replaced by 
        bash-based script at build_tests.sh
      - Various Javadoc fixes
      
      Thanks to `@kcooney` for:
      
      - Made MultipleFailureException public, to assist extension writers.
      - github#240: Add "test" target to build.xml, for faster ant-driven testing.
      - github#247: Give InitializationError a useful message
      

      Attachments

        Activity

          People

            vmassol Vincent Massol
            vmassol Vincent Massol
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: