Ignoring some test steps depending on variables



  • I'm using Cucumber + Java + Selenium to UI test an application.

    I'm using the same set of tests whether my application is deployed in qualification (for tests) or in production.

    However, when I'm in production, I would like to stop my tests sooner (as to not save the data I just changed in my test).

    So, is there a way to make a cucumber test scenario stop and exit with success even though all the steps weren't played?

    I have found this answer who is useful. However, I'm using JUnit 5 (not 4 like in the answer) and if I try using:

    import org.junit.jupiter.api.Assumptions;
    Assumptions.assumeTrue(HOME_PAGE.contains("qual"));
    

    My test exit with an error.

    I have though about using System.exit(0);. However, this exit everything without execution the @After of my test (so my test don't end really cleanly) and all the tests scenarios that were supposed to be played after are skip! (nb: I just want to skip the remaining steps, not scenarios.)

    So, is there a way that I can skip some test's steps, exit the test scenario with success and happily go to the next test scenario (without having everything ending like it's the case when using "System.exit")?



  • Turns out that JUnit 5 and JUnit 4 aren't completely incompatible with each other. So, for now, I'm using Assume from JUnit 4 (along with other stuff from JUnit 5).

    import org.junit.Assume;
    Assume.assumeTrue(HOME_PAGE.contains("ekwaqua"));
    

    It's ugly, I don't like it (and I will be very grateful for another, cleaner, solution), but it's working.



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2