Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-15048

Migrate testsuite from TestNG to JUnit 5

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Obsolete
    • Icon: Major Major
    • 15.0.0.Final
    • 15.0.0.Final
    • Test Suite
    • None

      The majority of Infinispan modules utilises TestNG as the test framework, however this causes several issues, limited to:

      • Unable to utilise rerunFailingTestsCount for flakey tests
      • Discrepancy with server/tests and other modules prevents further code re-use

      TestNG specific code that needs to be converted:

      • TestSelector: test filters that act as test parameterizers
        • @InCacheMode
        • @InTransactionMode
        • @LockingModeFilter
        • @IsolationLevelFilter
      • Test interceptors
        • OrderByInstance
      • Hooks
        • TestNGLongTestsHook
      • Listeners
        • FeatureCondition
      • Test groups
        • functional
        • manual
        • profiling
        • smoke
        • stress
        • transaction
        • unit
        • unstable
        • xsite
      • Unique testName
      • SoftAssert

      Non standard test fwk classes that can eventually be removed:

      • TestCacheManagerFactory with lots of overloads
      • Adopt alternative assertion library: AssertJ, Truth, Hamcrest
      • @CleanupAfterMethod / @CleanupAfterTest annotations

      Existing test hierarchy:

      • AbstractInfinispanTest
      • * AbstractCacheTest
          • SingleCacheManagerTest
          • MultipleCacheManagersTest

      The aim of this epic is to transition the Infinispan modules to TestNG on a per module basis.

      To ease the migration, the intention is to replicate the existing test hierarchy using JUnit 5 in a dedicated module infinispan-jupiter. Infinispan modules can then be individually converted to use infinispan-jupter instead of TestNG abstractions provided in infinispan-core. Once all non-core modules have been converted to infinispan-jupiter, it will then be possible to remove TestNG from core and the infinispan-jupiter classes can be integrated as part of the module.

            remerson@redhat.com Ryan Emerson
            remerson@redhat.com Ryan Emerson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: