Code Monkey home page Code Monkey logo

pizza-delivery's Issues

Migrate Pizza Sample to JUnit 5

sitting at Devoxx talk by the JUnit guys about Junit I realize it might be important to have a junit 5 example for Scenarioo soon.

With junit5 integration of scenarioo should be even more elegant.

@ideco and @adiherzog what do you think?

Jenkins Build: Make it work for feature branches and pull requests

Accpetance criterias

  • If a featurer branch is opened like feature/{issueNumber}-{description} and a pull request is opened for such a branch and some changes are pushed to it , then the build will run and report success or failure of verifying it properly to the Pull Request on Github
  • verify this works for a failing test
  • verify this works for a succesful build

Prepare Example for Scenarioo 4.0

The README.md contains instructions that will be wrong with 4.0

  • differnet location of config.xml!
  • wrong version number!

Caution: this can only be done after the release!

Jenkins Build: Automatic deployment of app under test to github pages

Introduce a simple step in the build pipeline to publish current verison of the application under test on github page of the repo

Acceptance criterias

  • Cureent version of appication under test on master branch is automatically published to our github page under http://scenarioo.org/pizza-delivery
  • The links on the README page are adjusted accordingly

** Implementation details**

  • move application under test from prod to src/main/resources/app or something similar (more realistic compared to a real project, also by default picked up as resource directory by gradle?)
  • In Jenkins pipeline: Everytime this directory has changes deploy its content to gh-pages branch (into root dir) - by commit and pushing on github (using technical scenarioo-ci user)
  • Adjust README to directly link to root of github pages for seing the app under test

Improve Scenarioo Reporter

Some findings from junit5 refactoring to be addressed in both versions (junit4 and junit5) of the example:

  1. Exception information (stacktrace) should be attached to scenarioo report on test failure.

  2. WebDriver is initialized to listen for all interactions for each use case - shouldnt the listener only start to report during test execution (such that a test could do some test preparation without reporting it?)? Currenty it looks a bit weird this initialization is only done once per test class. In junit5 there is a special hook for BeforeTestExecution that could be used for that.

    • also this kind of opening the browser for each use case leads to browser poping always up again during test execution on desktop for many tests (maybe we should reuse the browser somehow)
  3. ScenariooEventListener: better rename to ScenariooStepReporter or even WebDriverStepReporter?

  4. UseCaseContext:

    • I think we should rename this to "ScenriooReporterContext" or something similar, since it holds more than just the use case
    • Ideas for junit5 only:
      • maybe it would be better to not handle that as a Singleton through the context holder but directly hold it inside the reporter ??
      • also we should later change it to use more of the JUnit 5 context info - see class ExtensionContext (e.g. DisplayName!)
  5. Further Ideas for Junit 5 only:

    • support Tag annotation from junit5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.