On Jun 2, 2010, at 10:42 PM, Guillermo Polito wrote: > Today's debugger (and all pharo indeed), is extremely dependant on the mouse... I would love to do all the same with just the keyboard :( me too. Now if you want to help in this direction we should check the packages for keybindings and see what they are doing and how we could integrate them. The way this is done in the paragraph editor is not good. I spent hours on it for the botsinc book long time ago. Stef > > On Wed, Jun 2, 2010 at 4:30 PM, Stéphane Ducasse <[hidden email]> wrote: > Hi all > > Imagine that we would like to sell pharo (+ seaside) as THE agile platform for doing TDD. > What would be the changes that we could do support it. > I know that hernan did a package for that but not I would like to have a new list of items > to support it. > > Stef > _______________________________________________ > 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 |
Where should I look? :D Is something written somewhere? :P
On Thu, Jun 3, 2010 at 1:22 PM, Stéphane Ducasse <[hidden email]> wrote:
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
On 3 juin 2010, at 07:45, Stéphane Ducasse wrote: > > On Jun 2, 2010, at 11:22 PM, Germán Leiva wrote: > >> I'm thinking out load here ... >> >> In the debugger when a DNU is raised, for speeding up the programming in "TDD mode": >> • The create button must add the method in the class of the receiver, the possibility to choose a superclass of the receiver must be optional (I don't like the recurrent asking...) in other button for example or having different shortcuts from the keyboard > is it not already the case? > Only when the exception window shows up. Once you click on the debug button, you can't do it anymore. >> >> • In the creation of a new class through "define new class" it will be helpful to remember the last class category used >> Some ToDo list supported from the environment and some facility for the creation of test. I'd rather go for a bit more sophisticated system based on Scrum task board coupled with Monticello. Tasks descriptions are organized in three collections Done, ToDo and inProgress. Once we do a project snapshot, we got these descriptions referenced in the snapshot. So, when browsing the history of snapshot, one can more easily figure out what each version is about. More features I'd like to have is in the refactoring browser : -When renaming an instance variable, rename its accessors two -Suggest to delete accessors when deleting an IV -Be able to generate accessors for multiple IVs at the same time (like in eclipse!) -Have a preference that automatically generate accessors on addition of IVs / class definition Noury _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
> -Suggest to delete accessors when deleting an IV
You cannot delete an inst-var with the refactoring engine if there are references. > -Be able to generate accessors for multiple IVs at the same time (like in eclipse!) This is built-in for several years now: refactor class | create accessors > -Have a preference that automatically generate accessors on addition of IVs / class definition I rarely use these accessor refactorings because I have to rewrite each method by hand afterwards anyway to have a type-revealing argument name and a comment. Lukas -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Noury Bouraqadi-2
I'd like to add to my whishlist : an automated execution of lint when all tests are green.
Noury On 3 juin 2010, at 21:07, Noury Bouraqadi wrote: > > On 3 juin 2010, at 07:45, Stéphane Ducasse wrote: > >> >> On Jun 2, 2010, at 11:22 PM, Germán Leiva wrote: >> >>> I'm thinking out load here ... >>> >>> In the debugger when a DNU is raised, for speeding up the programming in "TDD mode": >>> • The create button must add the method in the class of the receiver, the possibility to choose a superclass of the receiver must be optional (I don't like the recurrent asking...) in other button for example or having different shortcuts from the keyboard >> is it not already the case? >> > Only when the exception window shows up. Once you click on the debug button, you can't do it anymore. > >>> >>> • In the creation of a new class through "define new class" it will be helpful to remember the last class category used >>> Some ToDo list supported from the environment and some facility for the creation of test. > > I'd rather go for a bit more sophisticated system based on Scrum task board coupled with Monticello. > Tasks descriptions are organized in three collections Done, ToDo and inProgress. > Once we do a project snapshot, we got these descriptions referenced in the snapshot. So, when browsing the history of snapshot, one can more easily figure out what each version is about. > > More features I'd like to have is in the refactoring browser : > -When renaming an instance variable, rename its accessors two > -Suggest to delete accessors when deleting an IV > -Be able to generate accessors for multiple IVs at the same time (like in eclipse!) > -Have a preference that automatically generate accessors on addition of IVs / class definition > > Noury _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Mariano Martinez Peck
Hi all,
this is a cool thread! :-) What I did are changes to the tools to make more easy to run tests and implement what is needed. For example: 1) When you are in the browser writing a test method, you can press ctrl + t to save the method and run the test. If the test runs, it will show the green dot in the browser, if it does not, it popups the debugger directly on the error. So, this is a way to avoid pressing ctrl + s (save) then going to the method list, rigth click an select run test and if it fails select that you want to debug it.
I think this is really useful 2) Same as ctrl + t but ctrl + r to directly debug the test. It saves the method, puts a breakpoint in it and debugs it. Unfortunaly, in Pharo breakpoints dont show very well in the debuger (it highlights incorrect collaborations)
3) I removed the Notifier window, it directly opens the debugger 4) The debugger opens as a big window (so you dont have to resize it every time a test fails that is most of the time when doing tdd)
5) The debugger has an "Implement" button that does what German Lieva suggested 6) Removed all the questions the browser ask when saving a method that sends a message not implemented, etc. I left defined not declared class and variables.
I think there are more things that could be improved/implemented: 1) Provide a default implementation for methods that look like getter or setters (like German also suggested. VisualAge does that very nice)
2) Allow the "Implement" option to work also when the method has a "subclassResponsibility" Right now it only works with "DoesNotUnderstand" 3) Allow to define coding patterns easily and execute those coding patterns automatically when needed. For example, I have coding pattern form instance creation messages like this:
Attendee named: aName attending: aCollectionOfDates ^ self new initializeNamed: aName attending: aCollectionOfDates It send the message new and the initializeXxx where Xxx is the same name of the instance creation message
We could provide default implementation for well know messages like #= or #hash (but this requires to generalize the implementation of #= and #hash using other objets...) 4) Similar to the previous one but for classes. For example if I write:
InvalidNameException signalName: xxx It could be inferred that we are creating an Exception, that the exception will have a class message that will signal the exception and an instance creation message (#name:) to create instances, and an initialization message (#initializeName:) and an instance variable called name.
(Of course one could argue that if this can be automatize, the we can create an abstraction for that and then we would not need a class per exception... but that is another discussion :-) ) 5) Change how the categorization of a method works. It should suggest a category based on the automatic categorization and it should not show so many options as it does right now (it is really annoying to see so many options)
6) Change the dialog for creating a class, it is too small I think that using TDD or BDD is another discussion... (for me there is no much different, that depends on what you understand with TDD...)
I don't know if I'd like the test to run automatically, never tried it, but it looks to me that it could be distractive... Bye Hernan
2010/6/3 Mariano Martinez Peck <[hidden email]> What Hernán did is here: http://www.squeaksource.com/TDDFacilities.html _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
That sounds great. Clearly on my to-try list On 3 juin 2010, at 23:04, Hernan Wilkinson wrote: Hi all, -- Simon _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On mine too...
Can't wait to try it. Great work Hernan! Cheers, Mariano. 2010/6/3 Simon Denier <[hidden email]>
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
The list is quite promising.
How exactly do I load it? Cheers, Doru On 3 Jun 2010, at 23:34, Mariano Abel Coca wrote: > On mine too... > > Can't wait to try it. > > Great work Hernan! > > Cheers, > > Mariano. > > > 2010/6/3 Simon Denier <[hidden email]> > > That sounds great. Clearly on my to-try list > > On 3 juin 2010, at 23:04, Hernan Wilkinson wrote: > >> Hi all, >> this is a cool thread! :-) >> >> What I did are changes to the tools to make more easy to run tests >> and implement what is needed. For example: >> >> 1) When you are in the browser writing a test method, you can press >> ctrl + t to save the method and run the test. If the test runs, it >> will show the green dot in the browser, if it does not, it popups >> the debugger directly on the error. So, this is a way to avoid >> pressing ctrl + s (save) then going to the method list, rigth click >> an select run test and if it fails select that you want to debug it. >> I think this is really useful >> 2) Same as ctrl + t but ctrl + r to directly debug the test. It >> saves the method, puts a breakpoint in it and debugs it. >> Unfortunaly, in Pharo breakpoints dont show very well in the >> debuger (it highlights incorrect collaborations) >> 3) I removed the Notifier window, it directly opens the debugger >> 4) The debugger opens as a big window (so you dont have to resize >> it every time a test fails that is most of the time when doing tdd) >> 5) The debugger has an "Implement" button that does what German >> Lieva suggested >> 6) Removed all the questions the browser ask when saving a method >> that sends a message not implemented, etc. I left defined not >> declared class and variables. >> >> I think there are more things that could be improved/implemented: >> 1) Provide a default implementation for methods that look like >> getter or setters (like German also suggested. VisualAge does that >> very nice) >> 2) Allow the "Implement" option to work also when the method has a >> "subclassResponsibility" Right now it only works with >> "DoesNotUnderstand" >> 3) Allow to define coding patterns easily and execute those coding >> patterns automatically when needed. For example, I have coding >> pattern form instance creation messages like this: >> Attendee named: aName attending: aCollectionOfDates >> >> ^ self new initializeNamed: aName attending: aCollectionOfDates >> >> It send the message new and the initializeXxx where Xxx is the same >> name of the instance creation message >> We could provide default implementation for well know messages like >> #= or #hash (but this requires to generalize the implementation of >> #= and #hash using other objets...) >> 4) Similar to the previous one but for classes. For example if I >> write: >> InvalidNameException signalName: xxx >> It could be inferred that we are creating an Exception, that the >> exception will have a class message that will signal the exception >> and an instance creation message (#name:) to create instances, and >> an initialization message (#initializeName:) and an instance >> variable called name. >> (Of course one could argue that if this can be automatize, the we >> can create an abstraction for that and then we would not need a >> class per exception... but that is another discussion :-) ) >> 5) Change how the categorization of a method works. It should >> suggest a category based on the automatic categorization and it >> should not show so many options as it does right now (it is really >> annoying to see so many options) >> 6) Change the dialog for creating a class, it is too small >> >> I think that using TDD or BDD is another discussion... (for me >> there is no much different, that depends on what you understand >> with TDD...) >> I don't know if I'd like the test to run automatically, never tried >> it, but it looks to me that it could be distractive... >> >> Bye >> Hernan >> >> >> 2010/6/3 Mariano Martinez Peck <[hidden email]> >> What Hernán did is here: http://www.squeaksource.com/TDDFacilities.html >> >> That was for Pharo 1.0. >> >> For those that want to help in this subject I think the first step >> could be to load such package in a PharoCore1.1 and fix it in case >> it doesn't work. >> Then, it can be integrated as part of PharoCore. Although it may be >> cool to have a preference to enable or disable all this changes >> (more TDD oriented), as we are not doing TDD all the time and >> sometimes we want the normal behavior. >> >> Once we have that, we can start improving. For example, I would >> love also what Guille said: key bindings for the debugger. I would >> LOVE to have a Pharo less mouse oriented (I don't care who invented >> the mouse, I rather the keyboard). >> >> So..open a bug ticket and start to play. >> >> Cheers >> >> Mariano >> >> 2010/6/3 Denis Kudriashov <[hidden email]> >> >> Hello, No I dont. Who is it? >> >> 2010/6/3 Stéphane Ducasse <[hidden email]> >> >> do you happen to know tim mckinnon? >> >> Stef >> On Jun 3, 2010, at 12:13 AM, Denis Kudriashov wrote: >> >> > I use Mockery - my implementation SSpec idies. It is realy more >> powerfull, transparency and flexibility. >> > >> > With Mockery you dont need any special base classes for TestCases >> or mocks factory variables in code. You just use mocks where you >> want by Block creation scenarios: >> > >> > [:mock | >> > [sut doWith: mock] should lenient satisfy: [mock someMessage >> willReturn: #result] >> > ] runScenario. >> > >> > State specs like "5 should be an instance of: Integer" can be >> easely added by pragmas. >> > >> > And Its work in Pharo 1.0. >> > >> > Of course, It's needs more good stuff. But now I dont have enough >> time. >> > http://www.squeaksource.com/Mocketry.html >> > >> > 2010/6/3 Sean P. DeNigris <[hidden email]> >> > >> > >> > Stéphane Ducasse wrote: >> > > >> > > Imagine that we would like to sell pharo (+ seaside) as THE >> agile platform >> > > for doing TDD. >> > > What would be the changes that we could do support it. >> > > >> > >> > Coming from Ruby, it seemed like BDD was taking over the world, >> and was the >> > next step in TDD evolution, but I found few mentions of it in the >> Squeak >> > world. For my own projects, I use SSpec (which I have been >> fixing as I go >> > along). I only use "tests" with SUnit assertions for community >> projects, as >> > not to confuse or add additional dependencies. >> > >> > I think that core BDD support would be necessary to woo >> developers here, >> > especially from Ruby, where all the passion and conversation is >> around BDD. >> > >> > Sean >> > -- >> > View this message in context: http://forum.world.st/About-TDD-and-Pharo-tp2240686p2240877.html >> > Sent from the Pharo Smalltalk mailing list archive at Nabble.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 >> >> >> _______________________________________________ >> 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 > > -- > Simon > > > > > _______________________________________________ > 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 -- www.tudorgirba.com "We are all great at making mistakes." _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Denis Kudriashov
Tim Mckinnon is creator SMock for Dolphin. I see his work. And his work will be stimul for me to implement mock-famework in VW and squeak (that I used) with more user friendly and powerfull features.
2010/6/3 Denis Kudriashov <[hidden email]> Hello, No I dont. Who is it? _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by hernan.wilkinson
more thoughts about this...
I think that the Smalltalk debugger is the best tool we have, the tool that allow us to be really "dynamic" (or agile, depending on the buzz you like the most :-)) and that we should take more advantage of when doing tdd (and not only tdd). People used to use other languages can not believe things we do in the debugger like implementing methods while running the tests, creating classes, adding inst vars, retrying contexts, etc.
Basically what I'm saying is that when you are doing tdd, the real programming happens on the debugger, so taking advantage of the execution context is something we can improve on the debugger... make the debugger not only a debugging tool but a programming tool. For example, ocompletion could take advantage of that, is you want to send a message to an object referenced by a variable, ocompletion could show only the messages that object understands, of if you write "aCollection size " then it could suggest messages that an integer understand (I'm assuming aCollection is a collection :-) ) This last idea could generate "second effects", so having a "transactional image" could help to avoid that...
We should think about other things that we could improve on the debugger having real objects and not just text... other crazy/not so sure ideas: 1) when writing a printOn: message, I always see how the contents of the stream ends up being... we could see that directly moving the mouse over the stream variable for example, like a quick preview
2) when sending a select: or detect: or reject: or do: etc message, it could take one element of the collection to infer the messages we can send to the block parameter 3) when an exception is signal, we could select a context and say, "Help me implement the handler" and therefore the debugger adds the [ ] around the selected code and puts the "on: theRealExceptionClass do: [ :....]" (where theRealExceptonClass is the class of the exception not handled and it knows it because it was just signaled"
I think the pattern to follow and discover other things we could improve are: "What do you have to think, to try on your mind, when you are programming in the debugger?"... then see if those things you "try" in your mind can be done by the debugger... I think this could lead us to un-think tools yet
On Thu, Jun 3, 2010 at 5:04 PM, Hernan Wilkinson <[hidden email]> wrote: Hi all, _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Tudor Girba
Hi Doru!
if you are asking about the package I wrote, just install the latest version of TDDFacilities on a pharo 1.0 image and then evaluate: OBTextMorphEditorWithShout initialize
Bye!,
Hernan. On Thu, Jun 3, 2010 at 5:39 PM, Tudor Girba <[hidden email]> wrote: The list is quite promising. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Noury Bouraqadi-2
We run the lint tests (and other we wrote like "are the visitor patterns implemented correctly?", "is the code you wrote following the design and coding conventions?" etc. before sending the package to integrate of making a new version of it...
When doing tdd, having all test green does not mean you are done with the development and I think those type of test have to be run when development is done...
On Thu, Jun 3, 2010 at 3:41 PM, Noury Bouraqadi <[hidden email]> wrote: I'd like to add to my whishlist : an automated execution of lint when all tests are green. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by hernan.wilkinson
OBSUnitIntegration is already providing some of those:
> 1) When you are in the browser writing a test method, you can press ctrl + t > to save the method and run the test. If the test runs, it will show the > green dot in the browser, if it does not, it popups the debugger directly on > the error. So, this is a way to avoid pressing ctrl + s (save) then going to > the method list, rigth click an select run test and if it fails select that > you want to debug it. Ctrl+T does not save, but it runs the tests and shows the debugger. I don't think that I like the two things to be combined :-) > 2) Same as ctrl + t but ctrl + r to directly debug the test. It saves the > method, puts a breakpoint in it and debugs it. Unfortunaly, in Pharo > breakpoints dont show very well in the debuger (it highlights incorrect > collaborations) Ctrl+D opens a full debugger on the first line of the selected test, no matter if the test fails or not. It doesn't use breakpoints. And I use it all the time :-) So maybe we could combine some of that code? Lukas -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
I've been using TDDFacilities in Pharo since it was first released. It
is precisely what I needed to achieve real TDD while developing my tools. New features in the New Compiler and TextLint (from scratch) were developed using this tool. Doru, if you want I can give you a short demo of it. I think that what Hernan is proposing is very important. The debugger is the tool that TDD developers use the most, we should concentrate on it first and then try to find out other potential improvements in other tools. I think we should invest some time into this. Cheers, Jorge On Fri, Jun 4, 2010 at 7:36 AM, Lukas Renggli <[hidden email]> wrote: > OBSUnitIntegration is already providing some of those: > >> 1) When you are in the browser writing a test method, you can press ctrl + t >> to save the method and run the test. If the test runs, it will show the >> green dot in the browser, if it does not, it popups the debugger directly on >> the error. So, this is a way to avoid pressing ctrl + s (save) then going to >> the method list, rigth click an select run test and if it fails select that >> you want to debug it. > > Ctrl+T does not save, but it runs the tests and shows the debugger. I > don't think that I like the two things to be combined :-) > >> 2) Same as ctrl + t but ctrl + r to directly debug the test. It saves the >> method, puts a breakpoint in it and debugs it. Unfortunaly, in Pharo >> breakpoints dont show very well in the debuger (it highlights incorrect >> collaborations) > > Ctrl+D opens a full debugger on the first line of the selected test, > no matter if the test fails or not. It doesn't use breakpoints. And I > use it all the time :-) > > So maybe we could combine some of that code? > > Lukas > > > -- > Lukas Renggli > www.lukas-renggli.ch > > _______________________________________________ > 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 |
In reply to this post by Lukas Renggli
On Fri, Jun 4, 2010 at 7:36 AM, Lukas Renggli <[hidden email]> wrote: OBSUnitIntegration is already providing some of those: That's what I don't like, ctrl + t runs all the tests of the class, not only the method were you are. I would love ctrl + t to run only the test where I am and if I want to run all the test of the class, then I select the class and then ctrl + t. This was discussed with Adrian Kuhn and he integrated this change in his package. I don't know where is it neither if it was integrated or not. Cheers Mariano
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Jorge Ressia
With a few sprints coming and such enthusiasm for our tools this is an
opportune thread to remind folks the debugger itself needs some serious work on it. I would suggest doing this first before adding features to it. Any volunteers? 1) pressing send does not always change the highlighted context. You often press send twice to achieve what you want and then sometimes over step. I have debugged into this and in one example it does simulate the bytecode but the debugger does not change. I am trying to write a test for it. See below. 2) highlighting is badly broken. To this end I am trying to write some tests that demonstrate the problems. I am finding it quite hard to write a test harness since debugging it is sometimes a challenge and I get caught out by the simulation guard. Any help/suggestions on the best way to invoke the debugger in this context would be appreciated. It requires quite a deep understanding of the execution machinery... At the moment I create a new process that is suspended and then open the debugger in it using the no suspend api but I am not sure this is the best approach. There are subtleties in the opening protocol which I don't fully understand surrounding what happens to the active process. There is an existing test case that uses semaphores but I have found that approach problematic in what I am trying to do. My basic goal is this and could easily be expressed in a table with columns 1) method source The string of an exactly formatted method 2) Debugger commands Send,send,send,send, 3)highlight interval before 1:14,5:8,12:34 etc The debugger would then be created on the fly invoked on the method and then the sequence of commands replayed and positions checked. Once basic highlighting could be checked I would enhance it to check step, step into block and asserting the top context and other things. Cheers Mike On 4 Jun 2010, at 07:38, Jorge Ressia <[hidden email]> wrote: > I've been using TDDFacilities in Pharo since it was first released. It > is precisely what I needed to achieve real TDD while developing my > tools. > New features in the New Compiler and TextLint (from scratch) were > developed using this tool. > > Doru, if you want I can give you a short demo of it. > > I think that what Hernan is proposing is very important. The debugger > is the tool that TDD developers use the most, we should concentrate on > it first and then try to find out other potential improvements in > other tools. > > I think we should invest some time into this. > > Cheers, > > Jorge > > On Fri, Jun 4, 2010 at 7:36 AM, Lukas Renggli <[hidden email]> > wrote: >> OBSUnitIntegration is already providing some of those: >> >>> 1) When you are in the browser writing a test method, you can >>> press ctrl + t >>> to save the method and run the test. If the test runs, it will >>> show the >>> green dot in the browser, if it does not, it popups the debugger >>> directly on >>> the error. So, this is a way to avoid pressing ctrl + s (save) >>> then going to >>> the method list, rigth click an select run test and if it fails >>> select that >>> you want to debug it. >> >> Ctrl+T does not save, but it runs the tests and shows the debugger. I >> don't think that I like the two things to be combined :-) >> >>> 2) Same as ctrl + t but ctrl + r to directly debug the test. It >>> saves the >>> method, puts a breakpoint in it and debugs it. Unfortunaly, in Pharo >>> breakpoints dont show very well in the debuger (it highlights >>> incorrect >>> collaborations) >> >> Ctrl+D opens a full debugger on the first line of the selected test, >> no matter if the test fails or not. It doesn't use breakpoints. And I >> use it all the time :-) >> >> So maybe we could combine some of that code? >> >> Lukas >> >> >> -- >> Lukas Renggli >> www.lukas-renggli.ch >> >> _______________________________________________ >> 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 |
In reply to this post by Mariano Martinez Peck
>> > 1) When you are in the browser writing a test method, you can press ctrl
>> > + t >> > to save the method and run the test. If the test runs, it will show the >> > green dot in the browser, if it does not, it popups the debugger >> > directly on >> > the error. So, this is a way to avoid pressing ctrl + s (save) then >> > going to >> > the method list, rigth click an select run test and if it fails select >> > that >> > you want to debug it. >> >> Ctrl+T does not save, but it runs the tests and shows the debugger. I >> don't think that I like the two things to be combined :-) > > That's what I don't like, ctrl + t runs all the tests of the class, not only > the method were you are. No, this is not the case. > This was discussed with Adrian Kuhn and he integrated this change in his > package. I don't know where is it neither if it was integrated or not. Yes, I integrated that a year ago or so :-) Lukas -- Lukas Renggli www.lukas-renggli.ch _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Fri, Jun 4, 2010 at 10:40 AM, Lukas Renggli <[hidden email]> wrote:
Ups...spoke faster than speaking. It's true, Pharo 1.1 with the latests OB it works as expected. Can we just change the label "run tests" to "run test" ? Thanks lukas mariano
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Lukas Renggli
cool! I did not know about it...
I have some questions... if you are writting a test in the browser and want to run it (just test), if you press ctr+t, does it run that test or all the tests? and also, if it does not save the method, how does it run the test you just wrote ? I did the ctrl+t do the save before running because I found myself saving then running, saving then running, etc, all the time... and if you want to run the test you have to save it before... why do you think you would not like the two things combined? do you see something that could bother or be wrong about it?
On Fri, Jun 4, 2010 at 1:36 AM, Lukas Renggli <[hidden email]> wrote: OBSUnitIntegration is already providing some of those: _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |