Thanks for the detailed explanation! It is indeed very helpful.

Might be worth adding this introduction to a README.adoc or a separate
HOW-TO-DEBUG.adoc to the "tomee-tck" repository (and link it from the
README.adoc) ?

Gruss
Richard

Am Mittwoch, den 07.04.2021, 14:49 -0700 schrieb David Blevins:
> Sharing a few tips for happy TCK work.
> 
> ## Opening the TCK in your IDE
> 
> The primary thing you need to debug through TCK tests is the source
> setup.  Here's a pom.xml I use that you can add to the root directory
> of an unzipped Jakarta EE TCK.  This is just enough pom.xml to get
> the TCK imported as a project in Intellij and sources appear without
> compile errors.  It does not actually build the TCK.
> 
>  - https://gist.github.com/dblevins/43eda499b820a2539a3d88c0e61d65a2
> 
> 
> ## Getting a fresh TCK install after modifications
> 
> A critical thing to be aware of is that 1) running the TCK will in
> fact modify your install in a handful of ways and 2) some of these
> process happen exactly once and will not repeat unless you unpack a
> completely fresh TCK install.
> 
> I got tired of repeatedly deleting and unpacking fresh TCK installs
> and also wanted a way to see exactly what had been changed after
> running tests, so I created a git project from a completely fresh TCK
> install.  Here it is for those who want to use it:
> 
>  - https://github.com/dblevins/jakartaeetck-8.0.2
> 
> The only changes post-unzip are to add Ant, and my pom.xml and a
> .gitignore.  With that I can do a `git clean -fd` at any time to
> restore my TCK install to a fresh state.  I can also do a `git
> status` and `git diff` to see exactly what has been modified.
> 
> 
> ## Setup TomEE, TomEE TCK and TCK in Intellij as one project
> 
> In most debugging scenarios you will need to step into both the test
> sources and the server sources.  You can't do that easily if they are
> setup in separate IDE windows.  They really need to be in the same
> project.  Here's how you can easily do that in Intellij.
> 
> 
>  1.  Open your project settings, select `modules` and click the +
> button in the upper right.  https://pasteboard.co/JWgsOiJ.png
>  2.  Select `Import Module` https://pasteboard.co/JWgtGXt.png
>  3.  Navigate to the `pom.xml` file at the root of your clone of 
> https://github.com/apache/tomee-tck and select `Open`.  
> https://pasteboard.co/JWguhKA.png
>  4.  Repeat steps 1-3, but this time Navigate to the `pom.xml` of
> your Jakarta EE 8.0.2 TCK and select `Open`.  
> https://pasteboard.co/JWgw6Ze.png
> 
> When this is done you should now see all three projects side-by-side
> in Intellij.  https://pasteboard.co/JWgxmQl.png
> 
> 
> ## Opening a debug port 5005 to the TomEE server
> 
> Now that the IDE is all setup, you can run a test with debug enabled
> and connect using Remote debugging in Intellij.  For this to work,
> you need to tell the tomee-tck `runtests` script to start the server
> with the debug port 5005 enabled via the `-ds` flag as follows:
> 
>     ./runtests -ds -c -w tomee-plume
> com/sun/ts/tests/jaxrs/spec/provider/visibility
> 
> 
> ## Running just one failing test in a group
> 
> There will be situations where there is just one test failing in a
> group and you don't want to run the whole group, just the one failing
> test.  The TCK output will print the test names like follows:
> 
>     1/-0/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #clientErrorExceptionTest_from_standalone - PASSED
>     2/-0/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #exceptionTest_from_standalone - PASSED
>     3/-0/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #filterChainTest_from_standalone - PASSED
>     3/-1/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #mappedExceptionTest_from_standalone - FAILED
>     4/-1/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #runtimeExceptionTest_from_standalone - PASSED
>     5/-1/?0 -
> com/sun/ts/tests/jaxrs/spec/provider/exceptionmapper/JAXRSClient#java
> #throwableTest_from_standalone - PASSED
> 
> To run just that failing test in the middle you just need to yank the
> "#java" portion and feed that to `./runtests` like so:
> 
>     ./runtests -ds -c -w tomee-plume
> com/sun/ts/tests/jaxrs/spec/provider/visibility
> 
> 
> Hope any of the above is helpful!
> 
> 
-- 
Richard Zowalla, M.Sc.
Research Associate, PhD Student | Medical Informatics

Hochschule Heilbronn – University of Applied Sciences
Max-Planck-Str. 39 
D-74081 Heilbronn 
phone: +49 7131 504 6791
mail: [email protected]
web: https://www.mi.hs-heilbronn.de/ 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to