-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tests output panel misleads people to think that their solution passes all tests, but fails #69
Comments
Thanks @hobovsky. For the timeout, I agree that it should be more clear. Maybe a more clear message like "Execution timed out. Failed to pass all the tests." at the top. For Scala crashing, it looks like a bug in the test output. CodeRunner is returning the information about the crashed test case, but the output is not showing it. The test output UI is mostly unchanged from the old Code Runner days and it has some issues. |
Do you need us to collect more cases? Do you need to collect every scenario in every language to have them fixed separately, or can all of them be corrected with the same fix? |
I'm not sure what the cause is yet, but if the same thing (not showing the failure even the data is there) is happening with other languages, then it's possible that a same fix will fix them all. So yes, I think it'll be helpful to have more cases. |
|
@kazk did you change the way
and it was uncompletable due to the outer The same thing happens in Python:
and Ruby 2.5 (but not Ruby 3.0):
It seems test failure is also triggered by the absence of |
Ugh, I need to revert that then. Empty test cases were always treated as failed ( |
Reverted. Nested |
Describe the bug
It's somewhat common, especially among newbies, that users interpret all-green output panel as a sign that their invalid solution passes all tests, but for some reason (not clear to them) gets rejected by the system.
It generally happens when all assertions in the test suite are successful, but it either crashes or is aborted by the runner. Such situation results in no distinctive, red messages, and users are not sufficiently hinted that tests fail because of problems with the submitted solution, and not for example the runner or system.
To Reproduce
There are several scenarios to cause similar behavior, some are more obvious that the others. I will post a few I remember, but I believe actual occurrences can differ by language, testing framework, and actual cause.
Tests aborted on timeout:
This kumite: https://www.codewars.com/kumite/5f2bececae0b73001a1b152a
This discourse: https://www.codewars.com/kata/5544c7a5cb454edb3c000047/discuss#5f2cee3f41132d000fc862b1 and many similar
I know there's a big message at the bottom hinting users what happened, but still amount of raised issues implies they don;t really get it. Needs more red.
Tests crash with stack overflow in Scala:
This kumite: https://www.codewars.com/kumite/5f2d79c341132d0023c94da6
This discourse: https://www.codewars.com/kata/5ce399e0047a45001c853c2b/discuss#5f2934af17642000193c1599
Notice how majority of posts contains phrase "my solution passes all tests, but fails", or similar.
I can think of more examples if you think it's necessary, but the problem generally applies to majority of cases when test suite crashes or exits forcibly.
Expected Behavior
If test suite is aborted due to invalid solution, I (and probably users) would expect it to be presented in a manner similar to failed assertions: with distinctive, red, big, difficult to miss message.
The text was updated successfully, but these errors were encountered: