2011-08-29 35 views
6

Tôi đã tìm thấy một vấn đề với môi trường thử nghiệm trong một vấn đề C++.Có công cụ nào giống như virtualenv cho C++ không?

Chúng tôi có máy tải mã từ hệ thống kiểm soát phiên bản và, xây dựng và thực thi kiểm tra đơn vị, không có gì mới.

Sự cố phát sinh khi chúng tôi thêm sự phụ thuộc mới vào dự án của chúng tôi. Chúng tôi đang phát triển rất nhiều tính năng cùng một lúc và nó là một cái gì đó tương đối phổ biến. Chúng tôi điều này xảy ra chúng tôi phải tư vấn cho người thử nghiệm và cung cấp cho họ một cách dễ dàng để tái tạo môi trường biên soạn ...

Và tôi đã suy nghĩ xem có cách nào khác dễ dàng không? công cụ như virtualenv hoặc buildout cho python ..

Tôi đã tìm kiếm trên google, nhưng không có may mắn.

Mọi trợ giúp sẽ được đánh giá cao.

+0

Ngoài ra, bạn đang xây dựng hệ điều hành nào? – bdonlan

+0

Ngoài ra, tôi không thấy làm thế nào điều này là * đặc biệt * liên quan đến C++ ... đây là một vấn đề chung của quá trình xây dựng, và thực tế là bạn sử dụng C++ không tạo ra bất kỳ sự khác biệt nào, cùng một vấn đề sẽ xảy ra trong bất kỳ ngôn ngữ. –

Trả lời

1

Bạn luôn có thể thêm tất cả các phụ thuộc vào hệ thống kiểm soát sửa đổi và cung cấp các tập lệnh tự động sẽ cài đặt các hệ thống phụ được yêu cầu. Nơi tôi làm việc, nếu bạn chỉ cần tải xuống phiên bản hiện tại từ kho lưu trữ, bạn có thể xây dựng trong một bước một hình ảnh ISO có thể được cài đặt bởi người thử nghiệm trong bất kỳ máy tính nào họ muốn. Hình ảnh chứa tất cả mọi thứ từ hệ điều hành đến ứng dụng. Tùy thuộc vào tình huống cụ thể của bạn, bạn có thể muốn bắt đầu với các bước nhỏ hơn, như thêm phụ thuộc vào kho lưu trữ và yêu cầu người kiểm tra kiểm tra xem có bất kỳ tệp mới nào xuất hiện hoặc thay đổi phiên bản hay không.

0

Không có công cụ sẵn sàng, AFAIK, ngoại trừ có thể cho CMake có thể kiểm soát những thứ như vậy cho bạn.

Đối với C++, nó khá dễ quản lý "bằng tay" vì bạn có thể đặt biến môi trường LIB, LIBPATH và PATH vào các thư mục được chọn cẩn thận. Không có tệp page.py, trứng, .pth và các tệp tương tự như với Python.

Chúng tôi làm điều này tại cửa hàng của mình, thiết lập môi trường xây dựng/phát triển chặt chẽ và có mọi thứ trong kiểm soát sửa đổi (chủ yếu là các tập lệnh tải xuống rất nhiều libs dựng sẵn và giải nén chúng vào đúng vị trí).

Các thư viện nhỏ được sao chép vào các thư mục phổ biến, lớn hơn có được mục nhập riêng của chúng trong các env-vars.

Tính năng này hoạt động tốt như nhau đối với Python và Java. Chưa thử các ngôn ngữ khác ... :)

Các vấn đề liên quan