MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Kiểm tra tích hợp với Testcontainers + Quarkus + MongoDB

Tôi không thể nói chắc chắn nếu không nhìn thấy cấu hình thử nghiệm của bạn, nhưng tôi đoán rằng nó hoạt động với docker run chứ không phải Testcontainers vì docker run hiển thị một cổng cố định (luôn là 27017) nhưng Testcontainers sẽ để lộ cổng 27017 như một cổng ngẫu nhiên (để tránh xung đột cổng trên máy thử nghiệm).

Để sử dụng Testcontainers với một bài kiểm tra Quarkus, các bài kiểm tra của bạn phải tuân theo quy trình sau:

  1. Bắt đầu các vùng chứa. Điều này là cần thiết vì chỉ có thể biết cổng ngẫu nhiên cho MongoDB sau vùng chứa đã được khởi động.
  2. Nhận các cổng ngẫu nhiên từ Testcontainers sau khi các container được khởi động, sau đó đặt bất kỳ thuộc tính cấu hình kiểm tra nào phụ thuộc vào các cổng container. Ví dụ:

    static GenericContainer mongodb = new GenericContainer<>("mongo:4.2").withExposedPorts(27017);
    static {
      mongodb.start();
      System.setProperty("quarkus.mongodb.connection-string",
                         "mongodb://" + mongodb.getContainerIpAddress() + ":" + mongodb.getFirstMappedPort());
    }
    
  3. Hãy để Quarkus bắt đầu. Vì Quarkus không hỗ trợ cấu hình động nên bạn phải đặt cổng MongoDB trước khi Quarkus khởi động.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Tại sao find và findOne chỉ trả về phần tử mảng cuối cùng?

  2. Xóa phần tử khỏi mảng trong mongodb

  3. Làm cách nào để thay đổi tất cả các phần tử mảng trong tài liệu mongodb thành một giá trị nhất định?

  4. Lặp lại nối tiếp con trỏ mongodb (đợi lệnh gọi lại trước khi chuyển sang tài liệu tiếp theo)

  5. Bộ sưu tập sao băng quan sát những thay đổi đúng