2012-10-19 12 views
21

Potrzebuję sposobu, aby ustalić, czy osoba wywołująca funkcję jest Travis-CI, czy nie. Jeśli to Travis-CI, nie chcę tutaj rozpoczynać sesji. W tej chwili mam skrypt testowy, aby utworzyć plik o nazwie test.txt, a następnie go poszukaj.Jak wykryć Travis-Ci lub nie

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

Jednak musi istnieć lepszy sposób. Wydaje się, że bez sprawdzenia pliku, jeśli faktycznie jest sesja, nowa nie zostanie utworzona. Ale tak nie jest. W takim przypadku powyższy link powinien minąć.

Before dodanie "test.txt" file:
After

+2

Systemy, które wyraźnie zmieniają swoje zachowanie podczas testów, ** nie są właściwie testowane. – paxdiablo

+0

@paxdiablo Niezupełnie. Problemem jest to, że aby przetestować wt wt, używamy zależności, która uruchamia sesję. Niestety, nie mogę tego wyłączyć. – chriscct7

Odpowiedz

44

Ogólnie można wykryć, czy jesteś na Travis-ci poprzez sprawdzenie zmienne środowiskowe. Możesz sprawdzić dla CI=true lub bardziej specyficznego TRAVIS=true. W PHP można użyć wartości getenv() function, aby uzyskać wartość zmiennej środowiskowej.

Zobacz complete list of the environment. Możesz ustawić jeszcze więcej env variables in your .travis.yml.

+2

Wierzę, że s poprawna odpowiedź "CI = TRUE" jest ustawiony, przynajmniej, dla travis/appveyor/circleci. –

Powiązane problemy