Autotest (TDD), request for comments

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Autotest (TDD), request for comments

laurent laffont
Hi,

Autotest is a live testing tool (similar too Ruby Autotest, but the Smalltalk way, more dynamic).

Autotest automatically runs tests related to the methods you edit. Screencast to see it in action: http://lolgzs.free.fr/pharo/autotest3.mpeg

Autotest uses the following heuritics to find the tests to run:
- if the method is a test, runs it
- it the method is a test setUp or tearDown, run all the tests of the TestCase
- else find all senders which are tests in the same package and runs them (it detects different packages that are related, for example ProfStef-Core and ProfStef-Test)

To activate the Autotest dashboard:
- open the settings browser
- go under System
- check "Show Autotest Dashboard" option

To load it:

Gofer new
squeaksource: 'Autotest';
package: 'Autotest';
load

HelpSystem book included.


I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).

Thanks for feedback.

Cheers,

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

Patrick Barroca
Hello,

I started to add a log to Autotest to view the list of ran tests.
I added a new button in the Dashboard, it open a new window with a
PluggableListMorph in it.

I have then many questions :
    - what information should we display in this list ?
    - I feel we might need to empty the log sometimes so I would add a
«Clean» or «Empty» button in Log window, is this OK ?
    - I think we should give a maximum size to the log as it could
become very large, what would be a meaningful max size ? should it go
to a preference ?

Cheers,

2010/6/17 laurent laffont <[hidden email]>:

> Hi,
> Autotest is a live testing tool (similar too Ruby Autotest, but the
> Smalltalk way, more dynamic).
> Autotest automatically runs tests related to the methods you edit.
> Screencast to see it in action: http://lolgzs.free.fr/pharo/autotest3.mpeg
> Autotest uses the following heuritics to find the tests to run:
> - if the method is a test, runs it
> - it the method is a test setUp or tearDown, run all the tests of the
> TestCase
> - else find all senders which are tests in the same package and runs them
> (it detects different packages that are related, for example ProfStef-Core
> and ProfStef-Test)
> To activate the Autotest dashboard:
> - open the settings browser
> - go under System
> - check "Show Autotest Dashboard" option
> To load it:
> Gofer new
> squeaksource: 'Autotest';
> package: 'Autotest';
> load
> HelpSystem book included.
>
> I would like to know what needs enhancements, what to add (and to remove :)
> and whether you would use it or not (and why).
> Thanks for feedback.
> Cheers,
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Patrick Barroca

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

laurent laffont
On Mon, Jun 21, 2010 at 10:28 AM, Patrick Barroca <[hidden email]> wrote:
Hello,

I started to add a log to Autotest to view the list of ran tests.
I added a new button in the Dashboard, it open a new window with a
PluggableListMorph in it.

I have then many questions :
   - what information should we display in this list ?

Would be cool to show:
- method which triggers Autotest
- list of TestCase run (so we can also manually check the heuristics and improve them)

 
   - I feel we might need to empty the log sometimes so I would add a
«Clean» or «Empty» button in Log window, is this OK ?
If there's a small log size maybe we don't need this
 
   - I think we should give a maximum size to the log as it could
become very large, what would be a meaningful max size ? should it go
to a preference ?

You can start with a method which returns a fixed size (like 10). Then if there's a need to adjust the size we can go on preferences. Keep it simple.

Thank you :)

Laurent

 

Cheers,

2010/6/17 laurent laffont <[hidden email]>:
> Hi,
> Autotest is a live testing tool (similar too Ruby Autotest, but the
> Smalltalk way, more dynamic).
> Autotest automatically runs tests related to the methods you edit.
> Screencast to see it in action: http://lolgzs.free.fr/pharo/autotest3.mpeg
> Autotest uses the following heuritics to find the tests to run:
> - if the method is a test, runs it
> - it the method is a test setUp or tearDown, run all the tests of the
> TestCase
> - else find all senders which are tests in the same package and runs them
> (it detects different packages that are related, for example ProfStef-Core
> and ProfStef-Test)
> To activate the Autotest dashboard:
> - open the settings browser
> - go under System
> - check "Show Autotest Dashboard" option
> To load it:
> Gofer new
> squeaksource: 'Autotest';
> package: 'Autotest';
> load
> HelpSystem book included.
>
> I would like to know what needs enhancements, what to add (and to remove :)
> and whether you would use it or not (and why).
> Thanks for feedback.
> Cheers,
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Patrick Barroca

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

Mariano Martinez Peck
In reply to this post by laurent laffont


2010/6/17 laurent laffont <[hidden email]>
Hi,

Autotest is a live testing tool (similar too Ruby Autotest, but the Smalltalk way, more dynamic).

Autotest automatically runs tests related to the methods you edit. Screencast to see it in action: http://lolgzs.free.fr/pharo/autotest3.mpeg


Hi Laurent. I have just test it and I really like it. I wasn't aware at all what a Autotest was (I don't know Ruby).

 
Autotest uses the following heuritics to find the tests to run:
- if the method is a test, runs it
- it the method is a test setUp or tearDown, run all the tests of the TestCase
- else find all senders which are tests in the same package and runs them (it detects different packages that are related, for example ProfStef-Core and ProfStef-Test)


maybe a new feature: when modifying a TestResource, run all the tests that references it ?
what happens with subclasses?  suppose I refactor/modify a subclass, do you also run the tests of the superclasses?
 
To activate the Autotest dashboard
 
- open the settings browser
- go under System
- check "Show Autotest Dashboard" option


Here I am confused. This setting, just enables de dashborad or the run of the tests?  I guess one thing is to run the tests and another one is to see them in the dashborad.

I would love to be able to enable/disable AutoTest completly.

In addition, I think we can add AutoTest to PharoDev 1.2 images. What you and others think?
 
To load it:

Gofer new
squeaksource: 'Autotest';
package: 'Autotest';
load

HelpSystem book included.


I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).

Thanks for feedback.

Cheers,

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

laurent laffont
2010/6/21 Mariano Martinez Peck <[hidden email]>


2010/6/17 laurent laffont <[hidden email]>
Hi,

Autotest is a live testing tool (similar too Ruby Autotest, but the Smalltalk way, more dynamic).

Autotest automatically runs tests related to the methods you edit. Screencast to see it in action: http://lolgzs.free.fr/pharo/autotest3.mpeg


Hi Laurent. I have just test it and I really like it. I wasn't aware at all what a Autotest was (I don't know Ruby).

Cool !  Personnally I really like Ruby Autotest and I use a similar script for PHP. I can't do TDD without it :)
 
Autotest uses the following heuritics to find the tests to run:
- if the method is a test, runs it
- it the method is a test setUp or tearDown, run all the tests of the TestCase
- else find all senders which are tests in the same package and runs them (it detects different packages that are related, for example ProfStef-Core and ProfStef-Test)


maybe a new feature: when modifying a TestResource, run all the tests that references it ?

Good idea.
 
what happens with subclasses?  suppose I refactor/modify a subclass, do you also run the tests of the superclasses?

Now there's no heuristics on the class level, only method / package. So as long as there's a sender of the method you edit, tests will run. You can have a look at AutotestFinder, heuristics protocol.
 
 
To activate the Autotest dashboard
 
- open the settings browser
- go under System
- check "Show Autotest Dashboard" option


Here I am confused. This setting, just enables de dashborad or the run of the tests?  I guess one thing is to run the tests and another one is to see them in the dashborad.

I would love to be able to enable/disable AutoTest completly.

Closing the dashboard disables Autotest completly. AutotestDashboard sets up as a view of its Autotest instance. When you close it garbageCollect to be sure Autotest>>release is called.


In addition, I think we can add AutoTest to PharoDev 1.2 images. What you and others think?

I would like more feedback. If you use it you notice that your workflow changes because of that instant feedback.
I'm looking for people who use it on real TDD for real projects (as I'm only pharoing on my freetime). I think it can be a great tool we cannot have in «standard» programming languages.

Cheers,

Laurent
 
 
To load it:

Gofer new
squeaksource: 'Autotest';
package: 'Autotest';
load

HelpSystem book included.


I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).

Thanks for feedback.

Cheers,

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

Stéphane Ducasse
In reply to this post by Mariano Martinez Peck
>
>
> In addition, I think we can add AutoTest to PharoDev 1.2 images. What you and others think?

yes
even if we should think about having a nice metacelloRepository browser to load the components.



>  
> To load it:
>
> Gofer new
> squeaksource: 'Autotest';
> package: 'Autotest';
> load
>
> HelpSystem book included.
>
>
> I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).
>
> Thanks for feedback.
>
> Cheers,
>
> Laurent Laffont
>
> http://pharocasts.blogspot.com/
> http://magaloma.blogspot.com/
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

Mariano Martinez Peck
In reply to this post by laurent laffont

 
what happens with subclasses?  suppose I refactor/modify a subclass, do you also run the tests of the superclasses?

Now there's no heuristics on the class level, only method / package. So as long as there's a sender of the method you edit, tests will run. You can have a look at AutotestFinder, heuristics protocol.

ok...
 
 
 
To activate the Autotest dashboard
 
- open the settings browser
- go under System
- check "Show Autotest Dashboard" option


Here I am confused. This setting, just enables de dashborad or the run of the tests?  I guess one thing is to run the tests and another one is to see them in the dashborad.

I would love to be able to enable/disable AutoTest completly.

Closing the dashboard disables Autotest completly. AutotestDashboard sets up as a view of its Autotest instance. When you close it garbageCollect to be sure Autotest>>release is called.


So..maybe a better description in the Settings would be "Enable AutoTest" or something like that, refering to enable/disable AutoTest rather than Dashboard.
 

In addition, I think we can add AutoTest to PharoDev 1.2 images. What you and others think?

I would like more feedback. If you use it you notice that your workflow changes because of that instant feedback.
I'm looking for people who use it on real TDD for real projects (as I'm only pharoing on my freetime). I think it can be a great tool we cannot have in «standard» programming languages.


ok...
 
Cheers,

Laurent
 
 
To load it:

Gofer new
squeaksource: 'Autotest';
package: 'Autotest';
load

HelpSystem book included.


I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).

Thanks for feedback.

Cheers,

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Autotest (TDD), request for comments

laurent laffont

So..maybe a better description in the Settings would be "Enable AutoTest" or something like that, refering to enable/disable AutoTest rather than Dashboard.

OK.
Indeed, if you look at World Menu > Tools > Autotest there's another example of view (SUnit-like).

Laurent

 
 

In addition, I think we can add AutoTest to PharoDev 1.2 images. What you and others think?

I would like more feedback. If you use it you notice that your workflow changes because of that instant feedback.
I'm looking for people who use it on real TDD for real projects (as I'm only pharoing on my freetime). I think it can be a great tool we cannot have in «standard» programming languages.


ok...
 
Cheers,

Laurent
 
 
To load it:

Gofer new
squeaksource: 'Autotest';
package: 'Autotest';
load

HelpSystem book included.


I would like to know what needs enhancements, what to add (and to remove :) and whether you would use it or not (and why).

Thanks for feedback.

Cheers,

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project