testcontainers / testcontainers/testcontainers-java
[Feature]: JUnit Jupiter extension for reuse of containers
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Java
- Star
- 8.7k
- Fork
- 1.9k
- Merge trung bình
- 2 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 9
Mô tả
Module
Core
Problem
Assume you have several integration tests splitted in some classes. All this tests can reuse the same container instance. If the container needs some time to setup that would be a great benefit.
Solution
By using the JUnit extension API it would be easy to create a custom annotation like this:
@ContainerConfig(name="containerA", needNewInstance=false) public void testFoo() {}
A container that is needed could be simply defined by a provider:
@ContainerProvider(name="containerA") public GenericContainer<?> createContainerA() {}
By using test lifecycle callbacks (https://junit.org/junit5/docs/current/user-guide/#extensions-lifecycle-callbacks) this could be achieved as a JUnit extension.
I would be happy to help by creating the feature :)
Benefit
Containers that are needed for multiple tests in multiple classes only need to be defined once and the instances can be reused.
Alternatives
Would you like to help contributing this feature?
Yes
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu trong mô-đun Core và đọc các callback vòng đời của JUnit Jupiter extension API được tham chiếu trong issue. Xác định cách các annotation ContainerConfig và ContainerProvider được đề xuất sẽ đăng ký và tái sử dụng các container giữa các lớp kiểm thử, sau đó xác minh rằng các instance dùng chung chỉ được tạo một lần, trong khi các yêu cầu needNewInstance vẫn được cô lập.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- docker, java
- Lĩnh vực
- testing
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100