2012-10-19 14 views
21

Tôi cần một cách để xác định xem người gọi chức năng là Travis-CI hay không. Nếu đó là Travis-CI, tôi không muốn bắt đầu một phiên ở đây. Ngay bây giờ, tôi có kịch bản thử nghiệm của tôi tạo ra một tập tin gọi là test.txt và sau đó tìm nó.Làm thế nào để phát hiện xem Travis-Ci hay không

protected function __construct() { 
    if ((!session_id()) && (!file_exists('test.txt'))) session_start(); 
} 

Tuy nhiên, phải có cách tốt hơn. Có vẻ như, mà không có kiểm tra tập tin, nếu có trong thực tế một phiên làm, một cái mới sẽ không được tạo ra. Nhưng đây không phải là trường hợp. Nếu trường hợp này xảy ra, liên kết trước đây bên dưới đã trôi qua.

Before việc bổ sung các tập tin "test.txt":
After

+2

Hệ thống thay đổi rõ ràng hành vi của chúng khi được kiểm tra ** không ** được kiểm tra đúng cách. – paxdiablo

+0

@paxdiablo Không thực sự. Vấn đề ở đây là để kiểm tra plugin wp của tôi, chúng tôi sử dụng phụ thuộc bắt đầu phiên. Thật không may, tôi không thể tắt điều đó. – chriscct7

Trả lời

44

Nói chung bạn có thể phát hiện nếu bạn đang ở trên Travis-CI bằng cách kiểm tra các biến môi trường. Bạn có thể kiểm tra hoặc xem CI=true hoặc TRAVIS=true cụ thể hơn. Trong PHP, bạn có thể sử dụng getenv() function để lấy giá trị của một biến môi trường.

Xem complete list of the environment. Bạn có thể đặt nhiều hơn env variables in your .travis.yml.

+2

tôi tin rằng đó là một câu trả lời đúng 'CI = TRUE' được thiết lập, ít nhất, cho travis/appveyor/circleci. –