Administrator
|
So after a restart we would expect greenYes. On Fri, Nov 10, 2017 at 11:41 AM, stephan <[hidden email]> wrote: On 10-11-17 18:56, Richard Sargent wrote: |
In reply to this post by Richard Sargent
The CI sometimes fails due to heisenbugs, which of course we should fix but mostly someone just kicks the CI off again and the test passes and the code is integrated. So these heisenbugs slow down development when the CI fails, and also we are not gaining any systematic statistics on where the heisenbugs come from.
So for a while I've thought it would be useful for the CI to automatically rerun a failed test to bypass the heisenbugs and at the same time log them to a central location for anaylsis. So I think such a feature could also suit this situation. After you correct the code and resume execution to the end, the test is automatically rerun and turns green, or fails again bringing you straight back to the debugger. Actually that last itself would be a useful feature for a tight cycle dev/testing a Test. cheers -ben On Sat, Nov 11, 2017 at 3:45 AM, Richard Sargent <[hidden email]> wrote:
|
In reply to this post by Richard Sargent
Richard - I better understand what you are saying now. If you change the method and save it (hence restarting on the stack) I would expect it to turn green if I press resume. That is the TDD flow I expect, and one which sunit and coding in the debugger was predicated on.
However, there is the potential that some memory object that cached a result and is now running a second time could be the cause of a pass and so it is remotely possible that this is a false pass…. (And this I think is the crux of your argument - if any memory object is affected, theoretically you should rerun the whole transaction from a virgin state - which is effectively rerun the test from the beginning). So I guess we are discussing that we don’t have fully transactional memory executions? However I would argue that its way more common that you edit a method and fix a text and have 0 side effects than mucking around in memory or having something that rerunning locally messes up memory as well. So its much more useful to get the confirmation of green and move on. YES you could have a subtle error, and when you re-run it may later go red - but I would favour the 99% case as its a annoying if you are doing TDD. Tim
|
>> I would expect it to turn green if I press
resume.
I disagree with your expectations. You are arguing that
we should operate is if "probably correct" is the same as "correct". That's why
we have ****ty software.
I have no objection to leaving the method uncoloured
when you resume after correcting the error.
I have no objection to eliminating the red colouring in
these scenarios.
I strongly object to pretending that it is known to be
correct.
In my experience, we end up with better results when we
act on what we absolutely know to be factual and stop relying on
guessing.
From: Pharo-users [mailto:[hidden email]] On Behalf Of Tim Mackinnon Sent: November 14, 2017 06:19 To: Any question about pharo is welcome Subject: Re: [Pharo-users] Why does the test runner show red when I correct a test? However, there is the potential that some memory object that cached a
result and is now running a second time could be the cause of a pass and so it
is remotely possible that this is a false pass…. (And this I think is the crux
of your argument - if any memory object is affected, theoretically you should
rerun the whole transaction from a virgin state - which is effectively rerun the
test from the beginning). So I guess we are discussing that we don’t have fully
transactional memory executions?
However I would argue that its way more common that you edit a method and
fix a text and have 0 side effects than mucking around in memory or having
something that rerunning locally messes up memory as well. So its much more
useful to get the confirmation of green and move on. YES you could have a subtle
error, and when you re-run it may later go red - but I would favour the 99% case
as its a annoying if you are doing TDD.
Tim
|
On 15 November 2017 at 00:14, Richard Sargent <[hidden email]> wrote:
Or it could go to Amber, half-way between green & red to mean probably correct. cheers -ben
|
Administrator
|
Ben Coman wrote
> Or it could go to Amber, half-way between green & red to mean probably > correct. Ha ha. Again, it seems that just automatically rerunning the test immediately after a human-manipulated run and setting the color based on that second run addresses all points on both sides, no? ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Cheers,
Sean |
Administrator
|
Again, it seems that just automatically rerunning the test immediately after a human-manipulated run and setting the color based on that second run On Tue, Nov 14, 2017 at 4:49 PM, Sean P. DeNigris <[hidden email]> wrote: Ben Coman wrote |
In reply to this post by Sean P. DeNigris
Op 15-11-2017 om 01:49 schreef Sean P. DeNigris:
> Again, it seems that just automatically rerunning the test immediately after > a human-manipulated run and setting the color based on that second run > addresses all points on both sides, no? How many times do you want to restart execution? I have writen enough code where running it twice was not enough to get to green :) Stephan |
Administrator
|
I would say that is an entirely different question. If a test isn't stable, you have a completely different scenario from a test that interrupts execution and is resumed. On Nov 14, 2017 20:45, "Stephan Eggermont" <[hidden email]> wrote: Op 15-11-2017 om 01:49 schreef Sean P. DeNigris: |
In reply to this post by Tim Mackinnon
> On Nov 15, 2017, at 08:30, Richard Sargent <[hidden email]> wrote: > > I would say that is an entirely different question You are right: this is a different scenario. But the suggested fix sounds like a good one to me. After editing a test, even in the debugger, it makes sense to run the test (again?), and display the appropriate colored balloon. Andrew |
In reply to this post by Sean P. DeNigris
2017-11-15 1:49 GMT+01:00 Sean P. DeNigris <[hidden email]>:
Ben Coman wrote Except that sometimes we are debugging slow test and running it second time automatically after "proceed" can be not appropriate. We are talking about single test run. If user have any doubts about result It is his responsibility to rerun the test. User knows what he is doing when he debug and fix the test. No intelligence is required here. And anyway current fix just provides consistent behaviour to debugging from explicit breakpoint/halt. In that case the result was always in sync with debug session. |
And just putting it back to gray? As "not run"?
On Wed, Nov 15, 2017 at 10:44 AM, Denis Kudriashov <[hidden email]> wrote:
|
2017-11-15 11:00 GMT+01:00 Guillermo Polito <[hidden email]>:
We can implement any logic. Personally I need current behaviour.
|
On Wed, Nov 15, 2017 at 11:06 AM, Denis Kudriashov <[hidden email]> wrote:
But it is not about you personally. It is about implementing the most common and the less strange for newcomers.
|
2017-11-15 11:08 GMT+01:00 Guillermo Polito <[hidden email]>:
To know what is the most common case people should tell personal opinion. And in this thread only Richard was against current logic.
|
On Wed, Nov 15, 2017 at 11:41 AM, Denis Kudriashov <[hidden email]> wrote:
But you're assuming here that: - people that is not reading this email do not care and don't have a say - so pleople that is not subscribed to the mailing list don't care - and that includes newbies Our role of experienced guys it not only look after "our" best defaults. But also after the defaults of people without experience. I think that setting the button back to gray is a good behaviour. - it is the same thing that happens once you modify a method (which is what is happening during debugging) - it explicitly says "please rerun the test because you may have introduced side effects" Unless you make the debugger more intelligent, you cannot be sure that the result you obtained at the end of the test is really reproducible. And moreover, to be able to make such assumption you should be an expert that understands how the underlying framework behaves.
|
Administrator
|
In reply to this post by Denis Kudriashov
And in this thread only Richard was against current logic. On Wed, Nov 15, 2017 at 2:41 AM, Denis Kudriashov <[hidden email]> wrote:
|
Administrator
|
In reply to this post by Guillermo Polito
On Wed, Nov 15, 2017 at 2:49 AM, Guillermo Polito <[hidden email]> wrote:
|
In reply to this post by Richard Sargent
2017-11-15 17:16 GMT+01:00 Richard Sargent <[hidden email]>:
Fix is already in Pharo 7. So it is current logic now. And it was same for manual halt (instead of failure).
|
Administrator
|
In reply to this post by Richard Sargent
Richard Sargent wrote
> I would go a little further. Any method modified by the developer during > the course of running a test voids the ability to claim the test > succeeded. > Likewise, for any object editted in an inspector. That makes sense to me. ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Cheers,
Sean |
Free forum by Nabble | Edit this page |