Tôi đang chuyển đổi bộ thử nghiệm của dự án Python từ không liên quan đến mũi. Khung công tác hiện tại của dự án (dựa trên unittest) khá phức tạp, chứa rất nhiều mã tùy chỉnh để khám phá và chạy thử nghiệm, vì vậy tôi đang cố gắng chuyển sang mũi để làm cho mọi thứ được sắp xếp hợp lý hơn.Thừa kế kiểm tra mũi Python: đồ đạc thử tải đơn vị từ các lớp con
Tôi đang gặp sự cố với mã đang tạo bộ thử nghiệm.
Khuôn khổ của dự án có hai cách để chạy thử nghiệm. Một là
class TestSomething(unittest.TestCase):
def setUp(self):
...
def test_x(self):
...
def test_y(self):
...
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestSomething))
là cách "đơn giản", tất cả các ví dụ và hướng dẫn của Mũi đều hiển thị và hoạt động. Tuy nhiên, cách thứ hai là bằng cách định nghĩa một lớp thử nghiệm có chứa tất cả các logic kiểm tra, sau đó tạo ra trường hợp kiểm tra trong lớp con khác nhau có chứa các cấu hình thiết lập khác nhau và kế thừa các bài kiểm tra từ lớp cha:
class TestSomething(unittest.TestCase):
def test_x(self):
...
def test_y(self):
...
class TestCase1(TestSomething):
def setUp(self):
...
class TestCase2(TestSomething):
def setUp(self):
...
suite = unittest.TestSuite()
cases = [TestCase1,TestCase2]
suite.addTests([unittest.makeSuite(case) for case in cases])
Đây là những gì Mũi thất bại với. Nó cố gắng chạy các phương thức thử nghiệm đầu tiên, rõ ràng là không hoạt động vì không có setUp() trong lớp cha và nhiều biến được sử dụng trong test_x() và test_y() chưa được xác định.
Tôi không tìm thấy bất kỳ ví dụ nào về việc này được thực hiện ở bất kỳ đâu và tài liệu của Nose (khá thưa thớt và khó điều hướng) dường như không đề cập đến nó. Làm thế nào điều này có thể được thực hiện để làm việc với mũi? Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.
sử dụng trang trí mũi s đã làm các trick; nhìn lại, có vẻ như rất rõ ràng nhưng đôi khi các giải pháp rõ ràng nhất là những giải pháp khó nắm bắt nhất ... cảm ơn rất nhiều vì những lời khuyên! – Boris