thanks for the reply! I stumbled over the source code of the eclipse plugin in the meantime myself, but for someone who has never worked with processes, it is pretty hard to understand the inner workings. But anyway, that is my own problem I guess.
As for the thread-killing: I have a "GUI" class which declares a thread called "processorThread". The run()-method of that thread only calls the run()-method of another class of mine, the "TestcaseProcessor" (responsible for the execution of tests). Now, within that run()-method of the "TestcaseProcessor" I build the virtual xml-suites and then do this:
TestNG tng = new TestNG();
tng.setXmlSuites(mySuites);
tng.addListener(this);
tng.run();
If one clicks the stop-button of my "GUI" while TestNG runs, I do this:
processorThread.stop();
I know that's not very elegant, but it worked with JUnit. If you clicked the stop-button while JUnit was running "simpleTest3" for example, then "simpleTest3" would fail with a "ThreadDeath" and no other test would be run after that. If I try the same with TestNG however, "simpleTest3" does fail because of a "ThreadDeath" (mostly, not always), but TestNG simply doesn't stop there. It continues executing "simpleTest4", "simpleTest5" etc..
Am I making a mistake here? Is that the single threaded mode I use? I'm not sure anymore, I also tried calling TestNG.setThreadCount(1) and TestNG.setSuiteThreadPoolSize(1) manually, but nothing changes.
I will take a look at RemoteTestNG and work that out if I have to, but I would prefer a simple solution like the one I tried to realize.
Best Regards, Lostprophet