by Anonymous » 18 Aug 2025, 12:57
Ich habe einige Tests, die mit @idata Dekorateur von DDT Paket entwickelt wurden.
) In der Testklasse, nicht alle von ihnen. unittest.main () .
Gibt es eine Möglichkeit, dies zu erreichen?
Code: Select all
#!/usr/bin/env python3
import unittest
import sys
from ddt import idata, ddt
test_data_01 = [
["example1", "example2"],
["example3", "example4"],
]
test_data_02 = [
["other1", "other2"],
]
@ddt
class ExampleTest(unittest.TestCase):
@idata(test_data_01)
def test_01(self, params):
print(params)
@idata(test_data_02)
def test_02(self, params):
print(params)
if __name__ == "__main__":
sys.stdout = sys.__stdout__
unittest.main()
< /code>
Dies funktioniert: < /p>
bash-3.2$ ./ddt_problem.py
['example1', 'example2']
.['example3', 'example4']
.['other1', 'other2']
.
----------------------------------------------------------------------
Ran 3 tests in 0.005s
OK
< /code>
Die typische Art des Ausführens spezifischer Tests ist jedoch nicht: < /p>
bash-3.2$ /usr/bin/python3 ./ddt_problem.py ExampleTest.test_02
Traceback (most recent call last):
File "./ddt_problem.py", line 31, in
unittest.main()
File "/usr/python3.6/lib/python3.6/unittest.py", line 1296, in __init__
self.parseArgs(argv)
File "/usr/python3.6/lib/python3.6/unittest.py", line 1349, in parseArgs
self.createTests()
File "/usr/python3.6/lib/python3.6/unittest.py", line 1353, in createTests
self.module)
File "/usr/python3.6/lib/python3.6/unittest.py", line 659, in loadTestsFromNames
testCase = self.loadTestsFromName(name, module)
File "/usr/python3.6/lib/python3.6/unittest.py", line 626, in loadTestsFromName
obj = getattr(obj, part)
AttributeError: type object 'ExampleTest' has no attribute 'test_02'
Ich habe einige Tests, die mit @idata Dekorateur von DDT Paket entwickelt wurden.[code]test01_...[/code]) In der Testklasse, nicht alle von ihnen. unittest.main () .
Gibt es eine Möglichkeit, dies zu erreichen?[code]#!/usr/bin/env python3
import unittest
import sys
from ddt import idata, ddt
test_data_01 = [
["example1", "example2"],
["example3", "example4"],
]
test_data_02 = [
["other1", "other2"],
]
@ddt
class ExampleTest(unittest.TestCase):
@idata(test_data_01)
def test_01(self, params):
print(params)
@idata(test_data_02)
def test_02(self, params):
print(params)
if __name__ == "__main__":
sys.stdout = sys.__stdout__
unittest.main()
< /code>
Dies funktioniert: < /p>
bash-3.2$ ./ddt_problem.py
['example1', 'example2']
.['example3', 'example4']
.['other1', 'other2']
.
----------------------------------------------------------------------
Ran 3 tests in 0.005s
OK
< /code>
Die typische Art des Ausführens spezifischer Tests ist jedoch nicht: < /p>
bash-3.2$ /usr/bin/python3 ./ddt_problem.py ExampleTest.test_02
Traceback (most recent call last):
File "./ddt_problem.py", line 31, in
unittest.main()
File "/usr/python3.6/lib/python3.6/unittest.py", line 1296, in __init__
self.parseArgs(argv)
File "/usr/python3.6/lib/python3.6/unittest.py", line 1349, in parseArgs
self.createTests()
File "/usr/python3.6/lib/python3.6/unittest.py", line 1353, in createTests
self.module)
File "/usr/python3.6/lib/python3.6/unittest.py", line 659, in loadTestsFromNames
testCase = self.loadTestsFromName(name, module)
File "/usr/python3.6/lib/python3.6/unittest.py", line 626, in loadTestsFromName
obj = getattr(obj, part)
AttributeError: type object 'ExampleTest' has no attribute 'test_02'
[/code]