diagram of tests dependencies

classic Classic list List threaded Threaded
17 messages Options
Reply | Threaded
Open this post in threaded view
|

diagram of tests dependencies

Tomek Kaczanowski-3
Cedric, All,

I was thinking about adding a new feature to TestNG. What I would like
to have is a dot (graphviz) diagram of test dependencies. ...not sure
if that is of any use at all, but I feel like it might be fun. :)

I don't know TestNG codebase very well (if at all), so I would like to
ask you for hints on how to proceed.

I guess, that after I feed TestNG with tests, e.g. like this:
TestNG testng = new TestNG();
testng.setTestClasses/Suites(...)
then TestNG holds some internal structure which describes dependencies of tests.

Now the question is: "how can I access it?"

What I figured out is that it is possible by implementing IReporter
interface. This seems to be pretty easy, but there is another issue to
solve. Reporters come into action after tests are finished. I would be
more happy to be able to generate it without running any tests. How
can I skip all tests ? Should I write an annotation transformer that
would make all tests "enabled=false"?

--
Cheers,
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Cédric Beust ♔-2
Hi Tomek,

Actually, TestNG already supports this :-)

In the file GraphThreadPoolExecutor.java, set DOT_FILES to `true` and TestNG will generate a .dot file that you can feed to GraphViz (it will tell you the exact path). This implementation will actually generate several pictures that represent the evolution of your method graph as TestNG executes them. It's pretty neat :-)

I added this when I was writing the article explaining how I implemented concurrent dependent methods (part 1, part 2). In particular, part 2 talks a bit about my GraphViz implementation (which is very simple, as you saw).

Let me know if you get it to work, and feel free to share your graph if it's not confidential :-)

-- 
Cédric


On Wed, Jan 19, 2011 at 2:49 PM, Tomek Kaczanowski <[hidden email]> wrote:
Cedric, All,

I was thinking about adding a new feature to TestNG. What I would like
to have is a dot (graphviz) diagram of test dependencies. ...not sure
if that is of any use at all, but I feel like it might be fun. :)

I don't know TestNG codebase very well (if at all), so I would like to
ask you for hints on how to proceed.

I guess, that after I feed TestNG with tests, e.g. like this:
TestNG testng = new TestNG();
testng.setTestClasses/Suites(...)
then TestNG holds some internal structure which describes dependencies of tests.

Now the question is: "how can I access it?"

What I figured out is that it is possible by implementing IReporter
interface. This seems to be pretty easy, but there is another issue to
solve. Reporters come into action after tests are finished. I would be
more happy to be able to generate it without running any tests. How
can I skip all tests ? Should I write an annotation transformer that
would make all tests "enabled=false"?

--
Cheers,
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.




--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Tomek Kaczanowski-3
Hi Cedric,


> Actually, TestNG already supports this :-)
...that is really annoying! ;)

> In the file GraphThreadPoolExecutor.java, set DOT_FILES to `true` and TestNG
> will generate a .dot file that you can feed to GraphViz (it will tell you
> the exact path). This implementation will actually generate several pictures
> that represent the evolution of your method graph as TestNG executes them.
I will have a look at this. Thank you !

--
Regards / Pozdrawiam
Tomek Kaczanowski

> It's pretty neat :-)
> I added this when I was writing the article explaining how I implemented
> concurrent dependent methods (part 1, part 2). In particular, part 2 talks a
> bit about my GraphViz implementation (which is very simple, as you saw).
> Let me know if you get it to work, and feel free to share your graph if it's
> not confidential :-)
> --
> Cédric
>
> On Wed, Jan 19, 2011 at 2:49 PM, Tomek Kaczanowski
> <[hidden email]> wrote:
>>
>> Cedric, All,
>>
>> I was thinking about adding a new feature to TestNG. What I would like
>> to have is a dot (graphviz) diagram of test dependencies. ...not sure
>> if that is of any use at all, but I feel like it might be fun. :)
>>
>> I don't know TestNG codebase very well (if at all), so I would like to
>> ask you for hints on how to proceed.
>>
>> I guess, that after I feed TestNG with tests, e.g. like this:
>> TestNG testng = new TestNG();
>> testng.setTestClasses/Suites(...)
>> then TestNG holds some internal structure which describes dependencies of
>> tests.
>>
>> Now the question is: "how can I access it?"
>>
>> What I figured out is that it is possible by implementing IReporter
>> interface. This seems to be pretty easy, but there is another issue to
>> solve. Reporters come into action after tests are finished. I would be
>> more happy to be able to generate it without running any tests. How
>> can I skip all tests ? Should I write an annotation transformer that
>> would make all tests "enabled=false"?
>>
>> --
>> Cheers,
>> Tomek Kaczanowski
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "testng-dev" group.
>> To post to this group, send email to [hidden email].
>> To unsubscribe from this group, send email to
>> [hidden email].
>> For more options, visit this group at
>> http://groups.google.com/group/testng-dev?hl=en.
>>
>
>
>
> --
> Cédric
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "testng-dev" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/testng-dev?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Tomek Kaczanowski-3
Hi Cedric,

I tried to use it but with limited success. I run ant build of testng
and got a lot of dot files in /tmp/TestNG-whatever folder. They are
not exactly what I would like to have. It seems like no real test
methods names are used, but some fancy f1, f2 labels.

What I would like is to have clusters of groups and dependencies of
groups and methods. For example something like this:

digraph G {

        subgraph cluster_0 {
                style=filled;
                color=lightgrey;
                node [style=filled,color=white];
                testA;
                testB;
                testC;
                label = "smoke tests";
        }

        subgraph cluster_1 {
                node [style=filled];
                testD;
                testE -> testF;
                label = "real fun tests";
                color=blue
        }
        testD -> testB;

}

which generates the following diagram: http://tinyurl.com/5s6bmss

(this is just an example of the general idea, would need to work more
on this so the stuff is readable in case of thousands of tests etc.0

Would it be possible with GraphThreadPoolExecutor or should I try to
implement it using the IReporter approach described earlier?

--
Cheers,
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Cédric Beust ♔-2
Tomek,

You can modify this class to generate whatever graph works for you, you have access to the entire suite information and the current implementation shows you how to use it.

-- 
Cédric


On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski <[hidden email]> wrote:
Hi Cedric,

I tried to use it but with limited success. I run ant build of testng
and got a lot of dot files in /tmp/TestNG-whatever folder. They are
not exactly what I would like to have. It seems like no real test
methods names are used, but some fancy f1, f2 labels.

What I would like is to have clusters of groups and dependencies of
groups and methods. For example something like this:

digraph G {

       subgraph cluster_0 {
               style=filled;
               color=lightgrey;
               node [style=filled,color=white];
               testA;
               testB;
               testC;
               label = "smoke tests";
       }

       subgraph cluster_1 {
               node [style=filled];
               testD;
               testE -> testF;
               label = "real fun tests";
               color=blue
       }
       testD -> testB;

}

which generates the following diagram: http://tinyurl.com/5s6bmss

(this is just an example of the general idea, would need to work more
on this so the stuff is readable in case of thousands of tests etc.0

Would it be possible with GraphThreadPoolExecutor or should I try to
implement it using the IReporter approach described earlier?

--
Cheers,
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.




--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Tomek Kaczanowski-3
Hi Cedric,

> You can modify this class to generate whatever graph works for you, you have
> access to the entire suite information and the current implementation shows
> you how to use it.
So one option is to fork/hack TestNG and change
GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
for this tip.

But that is not really user-friendly, is it? I mean, it would be much
easier to have it pluggable, which means without changing TestNG. That
is why I ask you so stubbornly about implementing IReporter :)

--
Regards / Pozdrawiam
Tomek Kaczanowski

> --
> Cédric
>
> On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> <[hidden email]> wrote:
>>
>> Hi Cedric,
>>
>> I tried to use it but with limited success. I run ant build of testng
>> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
>> not exactly what I would like to have. It seems like no real test
>> methods names are used, but some fancy f1, f2 labels.
>>
>> What I would like is to have clusters of groups and dependencies of
>> groups and methods. For example something like this:
>>
>> digraph G {
>>
>>        subgraph cluster_0 {
>>                style=filled;
>>                color=lightgrey;
>>                node [style=filled,color=white];
>>                testA;
>>                testB;
>>                testC;
>>                label = "smoke tests";
>>        }
>>
>>        subgraph cluster_1 {
>>                node [style=filled];
>>                testD;
>>                testE -> testF;
>>                label = "real fun tests";
>>                color=blue
>>        }
>>        testD -> testB;
>>
>> }
>>
>> which generates the following diagram: http://tinyurl.com/5s6bmss
>>
>> (this is just an example of the general idea, would need to work more
>> on this so the stuff is readable in case of thousands of tests etc.0
>>
>> Would it be possible with GraphThreadPoolExecutor or should I try to
>> implement it using the IReporter approach described earlier?
>>
>> --
>> Cheers,
>> Tomek Kaczanowski
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "testng-dev" group.
>> To post to this group, send email to [hidden email].
>> To unsubscribe from this group, send email to
>> [hidden email].
>> For more options, visit this group at
>> http://groups.google.com/group/testng-dev?hl=en.
>>
>
>
>
> --
> Cédric
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "testng-dev" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/testng-dev?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Cédric Beust ♔-2
Tomek,

Yes, if you want to make your code available to other TestNG users, an IReporter is the correct way to do it. It should be pretty straightforward since the IReporter gets access to pretty much everything that happened during the test run...  Keep us posted!

-- 
Cédric


On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <[hidden email]> wrote:
Hi Cedric,

> You can modify this class to generate whatever graph works for you, you have
> access to the entire suite information and the current implementation shows
> you how to use it.
So one option is to fork/hack TestNG and change
GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
for this tip.

But that is not really user-friendly, is it? I mean, it would be much
easier to have it pluggable, which means without changing TestNG. That
is why I ask you so stubbornly about implementing IReporter :)

--
Regards / Pozdrawiam
Tomek Kaczanowski

> --
> Cédric
>
> On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> <[hidden email]> wrote:
>>
>> Hi Cedric,
>>
>> I tried to use it but with limited success. I run ant build of testng
>> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
>> not exactly what I would like to have. It seems like no real test
>> methods names are used, but some fancy f1, f2 labels.
>>
>> What I would like is to have clusters of groups and dependencies of
>> groups and methods. For example something like this:
>>
>> digraph G {
>>
>>        subgraph cluster_0 {
>>                style=filled;
>>                color=lightgrey;
>>                node [style=filled,color=white];
>>                testA;
>>                testB;
>>                testC;
>>                label = "smoke tests";
>>        }
>>
>>        subgraph cluster_1 {
>>                node [style=filled];
>>                testD;
>>                testE -> testF;
>>                label = "real fun tests";
>>                color=blue
>>        }
>>        testD -> testB;
>>
>> }
>>
>> which generates the following diagram: http://tinyurl.com/5s6bmss
>>
>> (this is just an example of the general idea, would need to work more
>> on this so the stuff is readable in case of thousands of tests etc.0
>>
>> Would it be possible with GraphThreadPoolExecutor or should I try to
>> implement it using the IReporter approach described earlier?
>>
>> --
>> Cheers,
>> Tomek Kaczanowski
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "testng-dev" group.
>> To post to this group, send email to [hidden email].
>> To unsubscribe from this group, send email to
>> [hidden email].
>> For more options, visit this group at
>> http://groups.google.com/group/testng-dev?hl=en.
>>
>
>
>
> --
> Cédric
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "testng-dev" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/testng-dev?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.




--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: diagram of tests dependencies

Tomek Kaczanowski-3
Cedric, All,

> Keep us posted!
you can follow the development on GitHub
https://github.com/tomekkaczanowski/testng-test-dependencies-reporter

--
Cheers,
Tomek Kaczanowski

>
> --
> Cédric
>
> On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <
>
>
>
> [hidden email]> wrote:
> > Hi Cedric,
>
> > > You can modify this class to generate whatever graph works for you, you
> > have
> > > access to the entire suite information and the current implementation
> > shows
> > > you how to use it.
> > So one option is to fork/hack TestNG and change
> > GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
> > for this tip.
>
> > But that is not really user-friendly, is it? I mean, it would be much
> > easier to have it pluggable, which means without changing TestNG. That
> > is why I ask you so stubbornly about implementing IReporter :)
>
> > --
> > Regards / Pozdrawiam
> > Tomek Kaczanowski
>
> > > --
> > > Cédric
>
> > > On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> > > <[hidden email]> wrote:
>
> > >> Hi Cedric,
>
> > >> I tried to use it but with limited success. I run ant build of testng
> > >> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
> > >> not exactly what I would like to have. It seems like no real test
> > >> methods names are used, but some fancy f1, f2 labels.
>
> > >> What I would like is to have clusters of groups and dependencies of
> > >> groups and methods. For example something like this:
>
> > >> digraph G {
>
> > >>        subgraph cluster_0 {
> > >>                style=filled;
> > >>                color=lightgrey;
> > >>                node [style=filled,color=white];
> > >>                testA;
> > >>                testB;
> > >>                testC;
> > >>                label = "smoke tests";
> > >>        }
>
> > >>        subgraph cluster_1 {
> > >>                node [style=filled];
> > >>                testD;
> > >>                testE -> testF;
> > >>                label = "real fun tests";
> > >>                color=blue
> > >>        }
> > >>        testD -> testB;
>
> > >> }
>
> > >> which generates the following diagram:http://tinyurl.com/5s6bmss
>
> > >> (this is just an example of the general idea, would need to work more
> > >> on this so the stuff is readable in case of thousands of tests etc.0
>
> > >> Would it be possible with GraphThreadPoolExecutor or should I try to
> > >> implement it using the IReporter approach described earlier?
>
> > >> --
> > >> Cheers,
> > >> Tomek Kaczanowski
>
> > >> --
> > >> You received this message because you are subscribed to the Google
> > Groups
> > >> "testng-dev" group.
> > >> To post to this group, send email to [hidden email].
> > >> To unsubscribe from this group, send email to
> > >> [hidden email]<testng-dev%[hidden email]>
> > .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/testng-dev?hl=en.
>
> > > --
> > > Cédric
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "testng-dev" group.
> > > To post to this group, send email to [hidden email].
> > > To unsubscribe from this group, send email to
> > > [hidden email]<testng-dev%[hidden email]>
> > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/testng-dev?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "testng-dev" group.
> > To post to this group, send email to [hidden email].
> > To unsubscribe from this group, send email to
> > [hidden email]<testng-dev%[hidden email]>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/testng-dev?hl=en.
>
> --
> Cédric

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

[testng-dev] Re: diagram of tests dependencies

Tomek Kaczanowski-3
Cedric, All,

I hacked a first version and described it on my blog http://is.gd/mFIh3J

The code is on github http://is.gd/Lzjs41

Hopefully someone will find it useful. :)

--
Cheers,
Tomek Kaczanowski

On 23 Sty, 16:58, Tomek Kaczanowski <[hidden email]>
wrote:

> Cedric, All,
>
> > Keep us posted!
>
> you can follow the development on GitHubhttps://github.com/tomekkaczanowski/testng-test-dependencies-reporter
>
> --
> Cheers,
> Tomek Kaczanowski
>
>
>
>
>
> > --
> > Cédric
>
> > On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <
>
> > [hidden email]> wrote:
> > > Hi Cedric,
>
> > > > You can modify this class to generate whatever graph works for you, you
> > > have
> > > > access to the entire suite information and the current implementation
> > > shows
> > > > you how to use it.
> > > So one option is to fork/hack TestNG and change
> > > GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
> > > for this tip.
>
> > > But that is not really user-friendly, is it? I mean, it would be much
> > > easier to have it pluggable, which means without changing TestNG. That
> > > is why I ask you so stubbornly about implementing IReporter :)
>
> > > --
> > > Regards / Pozdrawiam
> > > Tomek Kaczanowski
>
> > > > --
> > > > Cédric
>
> > > > On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> > > > <[hidden email]> wrote:
>
> > > >> Hi Cedric,
>
> > > >> I tried to use it but with limited success. I run ant build of testng
> > > >> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
> > > >> not exactly what I would like to have. It seems like no real test
> > > >> methods names are used, but some fancy f1, f2 labels.
>
> > > >> What I would like is to have clusters of groups and dependencies of
> > > >> groups and methods. For example something like this:
>
> > > >> digraph G {
>
> > > >>        subgraph cluster_0 {
> > > >>                style=filled;
> > > >>                color=lightgrey;
> > > >>                node [style=filled,color=white];
> > > >>                testA;
> > > >>                testB;
> > > >>                testC;
> > > >>                label = "smoke tests";
> > > >>        }
>
> > > >>        subgraph cluster_1 {
> > > >>                node [style=filled];
> > > >>                testD;
> > > >>                testE -> testF;
> > > >>                label = "real fun tests";
> > > >>                color=blue
> > > >>        }
> > > >>        testD -> testB;
>
> > > >> }
>
> > > >> which generates the following diagram:http://tinyurl.com/5s6bmss
>
> > > >> (this is just an example of the general idea, would need to work more
> > > >> on this so the stuff is readable in case of thousands of tests etc.0
>
> > > >> Would it be possible with GraphThreadPoolExecutor or should I try to
> > > >> implement it using the IReporter approach described earlier?
>
> > > >> --
> > > >> Cheers,
> > > >> Tomek Kaczanowski
>
> > > >> --
> > > >> You received this message because you are subscribed to the Google
> > > Groups
> > > >> "testng-dev" group.
> > > >> To post to this group, send email to [hidden email].
> > > >> To unsubscribe from this group, send email to
> > > >> [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/testng-dev?hl=en.
>
> > > > --
> > > > Cédric
>
> > > > --
> > > > You received this message because you are subscribed to the Google Groups
> > > > "testng-dev" group.
> > > > To post to this group, send email to [hidden email].
> > > > To unsubscribe from this group, send email to
> > > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/testng-dev?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "testng-dev" group.
> > > To post to this group, send email to [hidden email].
> > > To unsubscribe from this group, send email to
> > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/testng-dev?hl=en.
>
> > --
> > Cédric

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Cédric Beust ♔-2
Hi Tomek,

This is very cool! I encourage you to share it on the testng-users mailing-list as well.

One quick comment: you don't need to run the tests in order to find out their dependencies, you can do this with simple introspection since the dependency logic is captured in annotations.

-- 
Cédric


On Mon, Feb 14, 2011 at 3:35 AM, Tomek Kaczanowski <[hidden email]> wrote:
Cedric, All,

I hacked a first version and described it on my blog http://is.gd/mFIh3J

The code is on github http://is.gd/Lzjs41

Hopefully someone will find it useful. :)

--
Cheers,
Tomek Kaczanowski

On 23 Sty, 16:58, Tomek Kaczanowski <[hidden email]>
wrote:
> Cedric, All,
>
> > Keep us posted!
>
> you can follow the development on GitHubhttps://github.com/tomekkaczanowski/testng-test-dependencies-reporter
>
> --
> Cheers,
> Tomek Kaczanowski
>
>
>
>
>
> > --
> > Cédric
>
> > On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <
>
> > [hidden email]> wrote:
> > > Hi Cedric,
>
> > > > You can modify this class to generate whatever graph works for you, you
> > > have
> > > > access to the entire suite information and the current implementation
> > > shows
> > > > you how to use it.
> > > So one option is to fork/hack TestNG and change
> > > GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
> > > for this tip.
>
> > > But that is not really user-friendly, is it? I mean, it would be much
> > > easier to have it pluggable, which means without changing TestNG. That
> > > is why I ask you so stubbornly about implementing IReporter :)
>
> > > --
> > > Regards / Pozdrawiam
> > > Tomek Kaczanowski
>
> > > > --
> > > > Cédric
>
> > > > On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> > > > <[hidden email]> wrote:
>
> > > >> Hi Cedric,
>
> > > >> I tried to use it but with limited success. I run ant build of testng
> > > >> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
> > > >> not exactly what I would like to have. It seems like no real test
> > > >> methods names are used, but some fancy f1, f2 labels.
>
> > > >> What I would like is to have clusters of groups and dependencies of
> > > >> groups and methods. For example something like this:
>
> > > >> digraph G {
>
> > > >>        subgraph cluster_0 {
> > > >>                style=filled;
> > > >>                color=lightgrey;
> > > >>                node [style=filled,color=white];
> > > >>                testA;
> > > >>                testB;
> > > >>                testC;
> > > >>                label = "smoke tests";
> > > >>        }
>
> > > >>        subgraph cluster_1 {
> > > >>                node [style=filled];
> > > >>                testD;
> > > >>                testE -> testF;
> > > >>                label = "real fun tests";
> > > >>                color=blue
> > > >>        }
> > > >>        testD -> testB;
>
> > > >> }
>
> > > >> which generates the following diagram:http://tinyurl.com/5s6bmss
>
> > > >> (this is just an example of the general idea, would need to work more
> > > >> on this so the stuff is readable in case of thousands of tests etc.0
>
> > > >> Would it be possible with GraphThreadPoolExecutor or should I try to
> > > >> implement it using the IReporter approach described earlier?
>
> > > >> --
> > > >> Cheers,
> > > >> Tomek Kaczanowski
>
> > > >> --
> > > >> You received this message because you are subscribed to the Google
> > > Groups
> > > >> "testng-dev" group.
> > > >> To post to this group, send email to [hidden email].
> > > >> To unsubscribe from this group, send email to
> > > >> [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/testng-dev?hl=en.
>
> > > > --
> > > > Cédric
>
> > > > --
> > > > You received this message because you are subscribed to the Google Groups
> > > > "testng-dev" group.
> > > > To post to this group, send email to [hidden email].
> > > > To unsubscribe from this group, send email to
> > > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/testng-dev?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "testng-dev" group.
> > > To post to this group, send email to [hidden email].
> > > To unsubscribe from this group, send email to
> > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/testng-dev?hl=en.
>
> > --
> > Cédric

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.




--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Cédric Beust ♔-2
FYI, I added a link to your blog post from the documentation:


-- 
Cédric


2011/2/14 Cédric Beust ♔ <[hidden email]>
Hi Tomek,

This is very cool! I encourage you to share it on the testng-users mailing-list as well.

One quick comment: you don't need to run the tests in order to find out their dependencies, you can do this with simple introspection since the dependency logic is captured in annotations.

-- 
Cédric


On Mon, Feb 14, 2011 at 3:35 AM, Tomek Kaczanowski <[hidden email]> wrote:
Cedric, All,

I hacked a first version and described it on my blog http://is.gd/mFIh3J

The code is on github http://is.gd/Lzjs41

Hopefully someone will find it useful. :)

--
Cheers,
Tomek Kaczanowski

On 23 Sty, 16:58, Tomek Kaczanowski <[hidden email]>
wrote:
> Cedric, All,
>
> > Keep us posted!
>
> you can follow the development on GitHubhttps://github.com/tomekkaczanowski/testng-test-dependencies-reporter
>
> --
> Cheers,
> Tomek Kaczanowski
>
>
>
>
>
> > --
> > Cédric
>
> > On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <
>
> > [hidden email]> wrote:
> > > Hi Cedric,
>
> > > > You can modify this class to generate whatever graph works for you, you
> > > have
> > > > access to the entire suite information and the current implementation
> > > shows
> > > > you how to use it.
> > > So one option is to fork/hack TestNG and change
> > > GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
> > > for this tip.
>
> > > But that is not really user-friendly, is it? I mean, it would be much
> > > easier to have it pluggable, which means without changing TestNG. That
> > > is why I ask you so stubbornly about implementing IReporter :)
>
> > > --
> > > Regards / Pozdrawiam
> > > Tomek Kaczanowski
>
> > > > --
> > > > Cédric
>
> > > > On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> > > > <[hidden email]> wrote:
>
> > > >> Hi Cedric,
>
> > > >> I tried to use it but with limited success. I run ant build of testng
> > > >> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
> > > >> not exactly what I would like to have. It seems like no real test
> > > >> methods names are used, but some fancy f1, f2 labels.
>
> > > >> What I would like is to have clusters of groups and dependencies of
> > > >> groups and methods. For example something like this:
>
> > > >> digraph G {
>
> > > >>        subgraph cluster_0 {
> > > >>                style=filled;
> > > >>                color=lightgrey;
> > > >>                node [style=filled,color=white];
> > > >>                testA;
> > > >>                testB;
> > > >>                testC;
> > > >>                label = "smoke tests";
> > > >>        }
>
> > > >>        subgraph cluster_1 {
> > > >>                node [style=filled];
> > > >>                testD;
> > > >>                testE -> testF;
> > > >>                label = "real fun tests";
> > > >>                color=blue
> > > >>        }
> > > >>        testD -> testB;
>
> > > >> }
>
> > > >> which generates the following diagram:http://tinyurl.com/5s6bmss
>
> > > >> (this is just an example of the general idea, would need to work more
> > > >> on this so the stuff is readable in case of thousands of tests etc.0
>
> > > >> Would it be possible with GraphThreadPoolExecutor or should I try to
> > > >> implement it using the IReporter approach described earlier?
>
> > > >> --
> > > >> Cheers,
> > > >> Tomek Kaczanowski
>
> > > >> --
> > > >> You received this message because you are subscribed to the Google
> > > Groups
> > > >> "testng-dev" group.
> > > >> To post to this group, send email to [hidden email].
> > > >> To unsubscribe from this group, send email to
> > > >> [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > >> For more options, visit this group at
> > > >>http://groups.google.com/group/testng-dev?hl=en.
>
> > > > --
> > > > Cédric
>
> > > > --
> > > > You received this message because you are subscribed to the Google Groups
> > > > "testng-dev" group.
> > > > To post to this group, send email to [hidden email].
> > > > To unsubscribe from this group, send email to
> > > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/testng-dev?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "testng-dev" group.
> > > To post to this group, send email to [hidden email].
> > > To unsubscribe from this group, send email to
> > > [hidden email]<testng-dev%2Bunsubscribe@googlegrou­ps.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/testng-dev?hl=en.
>
> > --
> > Cédric

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.




--
Cédric





--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Tomek Kaczanowski-3
In reply to this post by Cédric Beust ♔-2
> I encourage you to share it on the testng-users
> mailing-list as well.
done

> One quick comment: you don't need to run the tests in order to find out
> their dependencies, you can do this with simple introspection since the
> dependency logic is captured in annotations.
Yes, if I am only interested in seeing the dependencies then running
tests is a waste of time.
What do you mean "with simple introspection"? You mean I should use
standard Java mechanism, or is there something in the API of TestNG
that might help me to discover test dependencies without running the
tests?

--
Regards / Pozdrawiam
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Tomek Kaczanowski-3
In reply to this post by Cédric Beust ♔-2
> FYI, I added a link to your blog post from the documentation:
> http://testng.org/doc/misc.html
Thanks for making me famous! ;)

--
Regards / Pozdrawiam
Tomek Kaczanowski

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Cédric Beust ♔-2
In reply to this post by Tomek Kaczanowski-3


On Tue, Feb 15, 2011 at 11:30 AM, Tomek Kaczanowski <[hidden email]> wrote:
What do you mean "with simple introspection"? You mean I should use
standard Java mechanism, or is there something in the API of TestNG
that might help me to discover test dependencies without running the
tests?

The dependencies are captured in annotations, so you could collect all the test classes from the testng.xml and then look for all the @Test(dependsOnMethods/dependsOnGroups) annotations and build your graph from there. You would also need to calculate the groups, though, but overall, I think it should fit in ~100 lines of code to calculate the entire graph.

--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Tomek Kaczanowski-3
Hi Cedric,

one more question (and probably not the last one).

If a configuration method (e.g. @BeforeClass) fails, then tests, that
should be run after it, are skipped, right?

Now, I would like to learn about why a particular test was skipped.
That is, I want to know because of which failed set up method it was
skipped.

Is it possible? AFAIK configuration methods are not listed by
getMethodsDependedUpon method of ITestNGMethod.

--
Regards / Pozdrawiam
Tomek Kaczanowski


2011/2/15 Cédric Beust ♔ <[hidden email]>:

>
>
> On Tue, Feb 15, 2011 at 11:30 AM, Tomek Kaczanowski
> <[hidden email]> wrote:
>>
>> What do you mean "with simple introspection"? You mean I should use
>> standard Java mechanism, or is there something in the API of TestNG
>> that might help me to discover test dependencies without running the
>> tests?
>
> The dependencies are captured in annotations, so you could collect all the
> test classes from the testng.xml and then look for all the
> @Test(dependsOnMethods/dependsOnGroups) annotations and build your graph
> from there. You would also need to calculate the groups, though, but
> overall, I think it should fit in ~100 lines of code to calculate the entire
> graph.
> --
> Cédric
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "testng-dev" group.
> To post to this group, send email to [hidden email].
> To unsubscribe from this group, send email to
> [hidden email].
> For more options, visit this group at
> http://groups.google.com/group/testng-dev?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: [testng-dev] Re: diagram of tests dependencies

Cédric Beust ♔-2
Hi Tomek,

On Tue, Mar 8, 2011 at 1:15 PM, Tomek Kaczanowski <[hidden email]> wrote:
Hi Cedric,

one more question (and probably not the last one).

If a configuration method (e.g. @BeforeClass) fails, then tests, that
should be run after it, are skipped, right?

Correct. Which methods get skipped depend on which configuration method failed:

@BeforeMethod -> all test methods that follow
@BeforeClass -> the entire class
@BeforeTest -> all the classes left in the <test> tag

etc... you get the idea.

Now, I would like to learn about why a particular test was skipped.
That is, I want to know because of which failed set up method it was
skipped.

Is it possible? AFAIK configuration methods are not listed by
getMethodsDependedUpon method of ITestNGMethod.

Correct. No, there is not direct way of knowing what caused a skip, but it shouldn't be hard to guess: I think it's pretty rare when a configuration method fails, so you will most likely only have one per test run. Guessing it's the culprit will probably be right most of the time.

--
Cédric


--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/testng-dev?hl=en.
Reply | Threaded
Open this post in threaded view
|

[testng-dev] Re: diagram of tests dependencies

Mengyu Han
In reply to this post by Tomek Kaczanowski-3
Hi Tomek,

I find it very useful to have a graph of dependency representation, but we have been using ant instead of Maven for a long while .
Is there a way to use your testNG reporter by ant build.xml?

Thank you very much!


On Monday, February 14, 2011 at 3:35:07 AM UTC-8, Tomek Kaczanowski wrote:
Cedric, All,

I hacked a first version and described it on my blog <a href="http://www.google.com/url?q=http%3A%2F%2Fis.gd%2FmFIh3J&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNF39Fb0_Dch8adpUyy2UxvF6HVTqw" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fis.gd%2FmFIh3J\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF39Fb0_Dch8adpUyy2UxvF6HVTqw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fis.gd%2FmFIh3J\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF39Fb0_Dch8adpUyy2UxvF6HVTqw&#39;;return true;">http://is.gd/mFIh3J

The code is on github <a href="http://www.google.com/url?q=http%3A%2F%2Fis.gd%2FLzjs41&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGbQjZSqlB3eYpNLKU0DKAoU2FGJA" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fis.gd%2FLzjs41\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGbQjZSqlB3eYpNLKU0DKAoU2FGJA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fis.gd%2FLzjs41\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGbQjZSqlB3eYpNLKU0DKAoU2FGJA&#39;;return true;">http://is.gd/Lzjs41

Hopefully someone will find it useful. :)

--
Cheers,
Tomek Kaczanowski

On 23 Sty, 16:58, Tomek Kaczanowski <[hidden email]>
wrote:

> Cedric, All,
>
> > Keep us posted!
>
> you can follow the development on GitHubhttps://<a href="http://github.com/tomekkaczanowski/testng-test-dependencies-reporter" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftomekkaczanowski%2Ftestng-test-dependencies-reporter\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjzxsqMJXTjIQ2q88G_gIjMpUG0A&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fgithub.com%2Ftomekkaczanowski%2Ftestng-test-dependencies-reporter\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGjzxsqMJXTjIQ2q88G_gIjMpUG0A&#39;;return true;">github.com/tomekkaczanowski/testng-test-dependencies-reporter
>
> --
> Cheers,
> Tomek Kaczanowski
>
>
>
>
>
> > --
> > Cédric
>
> > On Fri, Jan 21, 2011 at 11:03 AM, Tomek Kaczanowski <
>
> > [hidden email]> wrote:
> > > Hi Cedric,
>
> > > > You can modify this class to generate whatever graph works for you, you
> > > have
> > > > access to the entire suite information and the current implementation
> > > shows
> > > > you how to use it.
> > > So one option is to fork/hack TestNG and change
> > > GraphThreadPoolExecutor to whatever suits me. Ok, good to know, thanks
> > > for this tip.
>
> > > But that is not really user-friendly, is it? I mean, it would be much
> > > easier to have it pluggable, which means without changing TestNG. That
> > > is why I ask you so stubbornly about implementing IReporter :)
>
> > > --
> > > Regards / Pozdrawiam
> > > Tomek Kaczanowski
>
> > > > --
> > > > Cédric
>
> > > > On Thu, Jan 20, 2011 at 1:03 PM, Tomek Kaczanowski
> > > > <[hidden email]> wrote:
>
> > > >> Hi Cedric,
>
> > > >> I tried to use it but with limited success. I run ant build of testng
> > > >> and got a lot of dot files in /tmp/TestNG-whatever folder. They are
> > > >> not exactly what I would like to have. It seems like no real test
> > > >> methods names are used, but some fancy f1, f2 labels.
>
> > > >> What I would like is to have clusters of groups and dependencies of
> > > >> groups and methods. For example something like this:
>
> > > >> digraph G {
>
> > > >>        subgraph cluster_0 {
> > > >>                style=filled;
> > > >>                color=lightgrey;
> > > >>                node [style=filled,color=white];
> > > >>                testA;
> > > >>                testB;
> > > >>                testC;
> > > >>                label = "smoke tests";
> > > >>        }
>
> > > >>        subgraph cluster_1 {
> > > >>                node [style=filled];
> > > >>                testD;
> > > >>                testE -> testF;
> > > >>                label = "real fun tests";
> > > >>                color=blue
> > > >>        }
> > > >>        testD -> testB;
>
> > > >> }
>
> > > >> which generates the following diagram:<a href="http://tinyurl.com/5s6bmss" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftinyurl.com%2F5s6bmss\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEl4VF4KrrJvYv2Ph4zszjI5UqDMQ&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Ftinyurl.com%2F5s6bmss\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEl4VF4KrrJvYv2Ph4zszjI5UqDMQ&#39;;return true;">http://tinyurl.com/5s6bmss
>
> > > >> (this is just an example of the general idea, would need to work more
> > > >> on this so the stuff is readable in case of thousands of tests etc.0
>
> > > >> Would it be possible with GraphThreadPoolExecutor or should I try to
> > > >> implement it using the IReporter approach described earlier?
>
> > > >> --
> > > >> Cheers,
> > > >> Tomek Kaczanowski
>
> > > >> --
> > > >> You received this message because you are subscribed to the Google
> > > Groups
> > > >> "testng-dev" group.
> > > >> To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testn...@....
> > > >> To unsubscribe from this group, send email to
> > > >> <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testng-dev+...@googlegroups.com<testng-dev%2Bunsubscribe@googlegrou­<a href="http://ps.com" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;">ps.com>
> > > .
> > > >> For more options, visit this group at
> > > >><a href="http://groups.google.com/group/testng-dev?hl=en" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;" onclick="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;">http://groups.google.com/group/testng-dev?hl=en.
>
> > > > --
> > > > Cédric
>
> > > > --
> > > > You received this message because you are subscribed to the Google Groups
> > > > "testng-dev" group.
> > > > To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testn...@....
> > > > To unsubscribe from this group, send email to
> > > > <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testng-dev+...@googlegroups.com<testng-dev%2Bunsubscribe@googlegrou­<a href="http://ps.com" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;">ps.com>
> > > .
> > > > For more options, visit this group at
> > > ><a href="http://groups.google.com/group/testng-dev?hl=en" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;" onclick="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;">http://groups.google.com/group/testng-dev?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "testng-dev" group.
> > > To post to this group, send email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testn...@....
> > > To unsubscribe from this group, send email to
> > > <a href="javascript:" target="_blank" gdf-obfuscated-mailto="73fYL-lE-8oJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">testng-dev+...@googlegroups.com<testng-dev%2Bunsubscribe@googlegrou­<a href="http://ps.com" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fps.com\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE6GMnUXko2XtM8gfhrnzubY-q3FQ&#39;;return true;">ps.com>
> > > .
> > > For more options, visit this group at
> > ><a href="http://groups.google.com/group/testng-dev?hl=en" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;" onclick="this.href=&#39;http://groups.google.com/group/testng-dev?hl\x3den&#39;;return true;">http://groups.google.com/group/testng-dev?hl=en.
>
> > --
> > Cédric

--
You received this message because you are subscribed to the Google Groups "testng-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/testng-dev.
For more options, visit https://groups.google.com/d/optout.