Integrity v0.14.0 comes with the following major changes from its predecessor, 0.13.x (see also the list of closed issues on GitHub):
- Performance improvements! In case of fast-executing tests, the Eclipse Test Runner could fall behind with displaying the results - the test has already finished, but the plugin is still working to display every single step. This phenomenon was significantly reduced by improving the plugins' performance in high-load situations - it is now processing and displaying stuff in the realm of 300% faster in such a case.
- In all of the tables in the Eclipse Test Runner plugin, result values can now be selected and copied to the clipboard. This includes the result/variable/properties tables.
- Visibility modifiers! When defining variables, constants, forks, suites and fixtures in a certain package, the new modifier "private" can be used to limit visibility of the defined entity to the package in which they are defined. This visibility is evaluated by the syntax checker as well as the code completion mechanisms. If no modifier is provided (like in previous versions), everything is considered "public" by default and visible from every other package. This is a first attempt at introducing such a visibility/scoping system - it might get changed or extended further in the future, depending on its usefulness in larger projects!
- Variables and suites which are defined within different packages, but in a common Integrity file, can now reference each other without having to either use fully qualified names or perform an import of the packages into the very file they are defined in. This works pretty much like a default import of all packages defined in a file into that exact file.
- By throwing the newly added "AbortExecutionException" from within a fixture method, the Integrity Test Runner can be asked by a fixture to immediately abort test execution. This is intended to allow for fixtures doing critical things (like setting up databases) to cancel further test execution if they decide that it doesn't make sense to continue, for example due to a serious infrastructure problem. This new way of ending test execution prematurely works well if used within a fork (it's just propagated to the master, which shuts down any other forks still running as well) and also ensures that the test result is still written accordingly before exiting - at least up to the point at which the execution was aborted. Test results also include a flag indication that a premature abort has taken place. All of this was not possible before - a naive "System.exit()" basically worked, but lacked regarding these important details.
- Arbitary parameter names could not contain certain characters that are not allowed to be used in identifiers within the Integrity language - like for example a plus sign or an uppercase letter in the beginning. This is a limitation ingrained in the language grammar and cannot easily be changed - but it is now possible to freely use any characters in arbitrary parameter names nevertheless by enclosing the name within quotes, like a string.
- Javadoc exports are now generated in the Integrity build process and provided as downloadable archives as well as for online browsing on the download page!