Py.test, how to run a method before each test

I used unittest and nose for unit testing in Python, but now I use py.test.
unittest and nose are always called class.setUpbefore each method runs in TestCase.

How can I do this with py.test?

EDIT: if I add this:

def setup_class(cls):
    cls.a = pypol.polynomial('x^3 - 2x^2 + x -5')
    cls.b = pypol.polynomial('a^3 - 2x^2 - b + 3')
    cls.c = pypol.polynomial('-x + 1')
    cls.d = pypol.polynomial('a')

I get all errors:

_____________________________ TestPolynomial.testSetitem ______________________________

self = <test_pypol.TestPolynomial object at 0x97355ec>

    def testSetitem(self):
>       TestPolynomial.a[2] = (3, {'x': 3, 'y': 4})
E       AttributeError: type object 'TestPolynomial' has no attribute 'a'

test_pypol.py:162: AttributeError
_____________________________ TestPolynomial.testDelitem ______________________________

self = <test_pypol.TestPolynomial object at 0x9735eac>

    def testDelitem(self):
>       del TestPolynomial.a[1:3]
E       AttributeError: type object 'TestPolynomial' has no attribute 'a'

EDIT2: Alright, I'm stupid. I had to insert TestCase, not the outside. Thank.

+3
source share
1 answer
+1
source

Source: https://habr.com/ru/post/1786170/


All Articles