Создание сервера непрерывной интеграции
- установка TeamCity
- установить Ruby
- установка Альбакор
Сценарий граблей должен сделать следующее
1. проверить файлы из системы контроля версий
2. строить локально
3. развернуть API для локального IIS
4. Запустите интеграционные тесты для localhost api
.
Это начало звучать знакомо. Смотри здесь
Вот пример из моих интеграционных тестов API. Дайте мне знать, если вы хотите получить более подробную информацию.
Я использую mspec.
Я запускаю его вместо localhost, нашего промежуточного сервера и нашего производственного сервера (ограниченный набор тестов), чтобы убедиться, что все http-соединения работают.
public class _GET_no_criteria : specs_for_endpoint_test
{
Establish context = () =>
{
Uri = C.Endpoint;
Querystring = "";
ExecuteJsonGetRequest();
SetValidId();
};
It should_have_status_code_200_ok =()=>
IsHttp_200OK();
It should_have_categories = () =>
{
responseText.ShouldNotBeEmpty();
PutsAll(responseText);
};
}
Из базового класса
public static void ExecuteGetRequest(string contentType)
{
httpcontext = HttpContext.Current;
request = (HttpWebRequest)WebRequest.Create(BaseUri + Uri + Querystring);
request.Method = C.HTTP_GET;
request.ContentType = contentType;
request.Headers[C.AUTHORIZATION] = token;
// GetResponse reaises an exception on http status code 400
// We can pull response out of the exception and continue on our way
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = (HttpWebResponse) ex.Response;
}
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
responseText = reader.ReadToEnd();
reader.Close();
}
}
public static void ExecuteJsonGetRequest()
{
ExecuteGetRequest(C.CONTENT_JSON);
}