Hello guys,
one area that beginners typically stumble over is jme’s definition of a Test or an Example.
From what I know, we have 3 Types of Tests:
- Unit Tests, that only test mathematical/logical functionality (unfortunately we don’t have many of those)
- Examples (by this I mean the example games, mostly, because see 3)
- Manual Function Tests that serve as example or reference implementation of 2.
Now the background of this question is that I have implemented what I called jme3-testing
a few months/years ago, an attempt to use a software openGL implementation to validate the rendering correctness on Github Actions.
My goal is to expand this testing by including as much as possible from the group 3.
For instance issues with Gamma Correction or certain filters or even just trying to apply/compile a certain stack order of filters should be tested there.
We can then think about integrating this into the engine itself.
The only technical issue there is the storage of the reference images, which probably shouldn’t be on the repository directly.
Besides that, coming back to the original question, while there are almost only hybrids of 2 and 3, we should try to split them, at the cost of code duplication. This is because for a test, some lack instructions on what to look for (SSAOUI
is a positive example here), others just aren’t really good examples, because a lot of stuff is built to have a fast and easy test case, which may not really deliver best practices.
What is your opinion there about?
A) Adopting jme3-testing onto those manual tests where possible
B) Making manual tests more clear (so maybe they can even be done manual, once it’s clear which are important and how they are supposed to look like)
C) Making better examples out of the current Test-examples
D) Dropping the jme3test
package, which isn’t really up to java’s standards (though neither is com.jme3)
E) Unifying all real examples in jme3-examples: Currently the Tests are only really available through the SDK, which creates a Test Project
, which contains classes “handpicked” from multiple artifact sources (which currently is even broken)
Thanks in Advance for your time