Tôi đang sử dụng py.test để xây dựng khung kiểm tra chức năng, vì vậy tôi cần có khả năng xác định các thử nghiệm chính xác để chạy. Tôi hiểu vẻ đẹp của bộ sưu tập thử nghiệm năng động, nhưng tôi muốn có thể chạy kiểm tra sức khỏe môi trường kiểm tra đầu tiên của tôi, sau đó chạy kiểm tra hồi quy của tôi sau; phân loại đó không loại trừ các thử nghiệm trong các bộ này đang được sử dụng cho các mục đích khác.chạy bộ kiểm thử (một bộ sưu tập tùy ý) với py.test
Các bộ thử nghiệm sẽ được gắn với các dự án xây dựng Jenkins. Tôi đang sử dụng osx, python 2.7.3, py.test 2.3.4.
Vì vậy, tôi có một trường hợp thử nghiệm như sau:
# sample_unittest.py
import unittest, pytest
class TestClass(unittest.TestCase):
def setUp(self):
self.testdata = ['apple', 'pear', 'berry']
def test_first(self):
assert 'apple' in self.testdata
def test_second(self):
assert 'pear' in self.testdata
def tearDown(self):
self.testdata = []
def suite():
suite = unittest.TestSuite()
suite.addTest(TestClass('test_first'))
return suite
if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(suite())
Và tôi có một bộ kiểm tra như thế này:
# suite_regression.py
import unittest, pytest
import functionaltests.sample_unittest as sample_unittest
# set up the imported tests
suite_sample_unittest = sample_unittest.suite()
# create this test suite
suite = unittest.TestSuite()
suite.addTest(suite_sample_unittest)
# run the suite
unittest.TextTestRunner(verbosity=2).run(suite)
Nếu tôi chạy sau từ dòng lệnh chống lại các bộ, test_first chạy (nhưng tôi không nhận được thông tin bổ sung mà py.test sẽ cung cấp):
python functionaltests/suite_regressi on.py -v
Nếu tôi chạy sau đây đối với các bộ, 0 xét nghiệm được thu thập:
functionaltests py.test/suite_regression.py
Nếu tôi chạy sau chống lại các testcase, test_first và test_second chạy:
py.test functionaltests/sample_unittest.py -v
01.
Tôi không thấy cách thực hiện py.test bằng từ khóa sẽ giúp tổ chức các thử nghiệm thành các bộ. Đặt testcases vào một cấu trúc thư mục và chạy py.test với các tùy chọn thư mục sẽ không cho phép tôi tổ chức các bài kiểm tra theo vùng chức năng.
Vì vậy, câu hỏi của tôi:
- Có một cơ chế py.test để xác định các nhóm độc đoán của các bài kiểm tra trong một định dạng tái sử dụng được?
- Có cách nào để sử dụng unittest.TestSuite từ py.test không?
EDIT: Vì vậy, tôi đã thử các dấu kiểm tra py.test, cho phép tôi gắn cờ các hàm thử và phương pháp thử với nhãn tùy ý, sau đó lọc cho nhãn đó tại thời gian chạy.
# conftest.py
import pytest
# set up custom markers
regression = pytest.mark.NAME
health = pytest.mark.NAME
Và tôi trường hợp thử nghiệm Cập nhật:
# sample_unittest.py
import unittest, pytest
class TestClass(unittest.TestCase):
def setUp(self):
self.testdata = ['apple', 'pear', 'berry']
@pytest.mark.healthcheck
@pytest.mark.regression
def test_first(self):
assert 'apple' in self.testdata
@pytest.mark.regression
def test_second(self):
assert 'pear' in self.testdata
def tearDown(self):
self.testdata = []
def suite():
suite = unittest.TestSuite()
suite.addTest(TestClass('test_first'))
return suite
if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(suite())
Vì vậy, chạy thu thập lệnh sau và chạy test_first:
functionaltests py.test/sample_unittest.py -v -m healthcheck
Và điều này thu thập và chạy test_first và test_second:
py.test functionaltests/sample_unittest.py -v -m hồi quy
Vì vậy, trở lại của tôi câu hỏi: đánh dấu là một giải pháp từng phần, nhưng tôi vẫn không có cách nào để kiểm soát việc thực hiện các bài kiểm tra được đánh dấu đã thu thập.
khi bạn nói * "không có cách nào để kiểm soát việc thực hiện các bài kiểm tra được đánh dấu đã thu thập" * ý của bạn là gì? mệnh lệnh? –
Có, tôi muốn kiểm soát việc thực hiện theo một thứ tự tùy ý và không dựa vào bất kỳ thứ tự mặc định nào của các thử nghiệm được thu thập. – sophe