-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split API and engine #80
Comments
That's a great point! However, I am under the impression that other testing frameworks such as JUnit and Junit-QuickCheck also bundle the engines with the API in the test dependencies. I believe the reason is so that the test package is fully runnable, including with support for things like CLI. That is, {artifact}-test.jar should be runnable without the need for depending on the Maven plugin. Given that app classes (i.e., not test) need not depend on even the JQF API, this should not affect packaging for production. Thoughts? |
See JUnit5: https://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle-engines-configure
In other words, the API classes are confined in Note: Maven does not distinguish compilation classpath and runtime classpath, so in Maven would put both api and runtime on the compilation classpath.
If you want to have a fully runnable zest.jar, it is fine (e.g. a separate jqf-zest-standallone.jar can be published), however, it would be too much for the people to import when writing |
That's a reasonable argument. Thanks for the info. It sounds like a good idea to have a new To implement this, we would need to move the classes The only issue right now would be that the This line would have to be changed to load the Let me know if you have a cleaner solution in mind. |
What do you think if For instance:
So by WDYT? |
This seems like maybe a good direction for the future but I don't know if such an engineering / refactoring effort is justified right now. We don't currently have that big of a user and/or developer base who is committed towards supporting frameworks other than junit-quickcheck such as jqwik. If the situation changes, I'll be happy to revisit this proposal. |
Given the interest in jqwik-team/jqwik#84, this refactoring may be relevant again. |
Test code does not need classes like ZestCli on the classpath, so it would be nice to have API-only dependency.
The text was updated successfully, but these errors were encountered: