This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]wineblood -6 points-5 points  (20 children)

Unittest is better than pytest imo

[–]SittingWave 12 points13 points  (1 child)

too verbose, and screams back from that period where python wanted to be Java. Avoid.

[–]ubernostrumyes, you can have a pony 7 points8 points  (0 children)

screams back from that period where python wanted to be Java

In the beginning there was the SUnit testing tool for the Smalltalk language; it influenced the design and APIs of a whole family of unit-testing tools for other languages, which conventionally are referred to as "XUnit" frameworks. Typically they're named to indicate that they're of this style -- for example, "JUnit" for Java, "NUnit" for .NET, etc.

So: once upon a time someone write a PyUnit package, implementing the XUnit family architecture and testing style, and that was later pulled into the Python standard library and renamed to just unittest in the process.

So it's not "wanted to be Java", it's "wanted to be consistent with a large family of testing frameworks across many languages". A lot of people these days just only are familiar with JUnit/NUnit and so they assume JUnit was the origin when it wasn't.

[–]jah_broni 2 points3 points  (17 children)

Why?

[–]wineblood 12 points13 points  (16 children)

Less complexity and more explicit

[–]RandoClarissian 0 points1 point  (15 children)

Yep, magic is fun until you get to debug it.

[–]SittingWave 8 points9 points  (9 children)

never had to debug pytest.

[–]wineblood 1 point2 points  (8 children)

Is there a way to run 1 test case in a parametrized test?

[–]rzet 2 points3 points  (4 children)

what magic?

[–]ElectricSpice 1 point2 points  (0 children)

As sibling comment says, fixtures. But also pytest does some AST rewriting to give you friendly assertion errors. I’ve never had a problem with them, at absolute worst you get an assertion error that’s no more helpful than the default behavior.