2 Replies Latest reply on Sep 14, 2011 4:00 AM by bmajsak

    Purpose of LocalTestMethodExecutor

    bmajsak

      Hi guys,

       

      while developing Spock extension I wasn't really able to get the full picture of the standalone module of TestNG and JUnit. Could you give me some more insight about where is it used exactly?

      Also, for both testing frameworks LocalTestMethodExecutor is exactly the same (as it is also for Spock runner). Wouldn't it be possible to reuse is it from some other Arquillian module?

       

      Thanks a lot for the insight.

       

      Cheers,

      Bartek

        • 1. Re: Purpose of LocalTestMethodExecutor
          aslak

          It's a little bit of baggage from the split up of the modules. Basically we use the classpath as a way to resolve our extensions(and at the time we had no 'exclude' extension option).

           

          So Arquillian has some 'core' extensions:

           

          * Arquillian Core (required, the event core)

          * Arquillian Test (adds Suite/Class/Test contexts + Before|After events for TestLifecycle)

          ** Arquillan can here function as a common abstraction layer between the different TestFrameworks

          * Arquillian Container (adds Container/Deployment contexts + Before|After events for Container LifeCycle)

          ** Arquillian can here function as a pure Container controller, e.g. Seam Forge, JBoss Tools, Maven integration

           

          * Arquillian Container Test (adds a integration layer between Test and Container, what you know as 'Arquillian')

           

          With this module layout, Arquillian can be used as a Pure Test Extension (no containers/deployment support) or as a pure Container controller(no Tests fluff).

           

          So, the XXX-container testframework pulls in the dependency tree for doing Arquillian Test+Container, while XXX-standalone has the dependency tree for Arquillian Test (only).

           

           

          The difference between standalone and container (besides the dependency tree) is the use of Local Only vs Local and Remote test execution.

          There has been added some new features to Arquillian Core so we could share these executors in the Test module now, by excluding the other executor depending on the which module you are. But we still need them for the dependency tree resolving.

           

          does that help?

          1 of 1 people found this helpful
          • 2. Re: Purpose of LocalTestMethodExecutor
            bmajsak

            Thanks, now I think I understand

             

            I think I found some leftovers from the module split activity. Will post here in the evening cause I don't have my notes now. Maybe there will be some small cleanup task for me