Мне нужно запустить некоторый код только в том случае, если я запускаюсь из тестовой пусковой установки TeamCity. Какой самый простой способ обнаружить это?Как определить, выполняется ли в TeamCity тест NUnit?
ответ
Проверьте, не определена ли переменная среды TEAMCITY_VERSION.
Другим подходом является использование категорий NUnit.
на основе комментариев ниже этого кода должен быть в состоянии проверить, если тест руководят TeamCity:
private static bool IsOnTeamCity()
{
string environmentVariableValue = Environment.GetEnvironmentVariable("TEAMCITY_VERSION");
if (!string.IsNullOrEmpty(environmentVariableValue))
{
return true;
}
return false;
}
Это рабочий код, основанный на идее Евгения: private static bool IsOnTeamCity() { string environmentVariableValue = Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"); if (! String.IsNullOrEmpty (окружениеVariableValue)) { return true; } return false; } –
Так упрощена это должно работать (?): 'вернуть string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"))' Зачем добавлять дополнительные 'if', что просто возвращает' истина/false'anyway!? – NiKiZe
Я в основном делаю, что со следующим свойством. Он получает имя каталога через базу кода вызывающей сборки, и если он содержит части вашего агента сборки TeamCity, он работает в TeamCity.
public static bool IsTeamCity
{
get
{
// the Assembly.GetExecutingAssembly().Location property gives funny results when using
// NUnit (where assemblies run from a temporary folder), so the use of CodeBase is preferred.
string codeBase = Assembly.GetCallingAssembly().CodeBase;
string assemblyFullPath = Uri.UnescapeDataString(new UriBuilder(codeBase).Path);
string assemblyDirectory = Path.GetDirectoryName(assemblyFullPath);
// a full TeamCity build directory would be e.g. 'D:\TeamCity\buildAgent\work\de796548775cea8e\build\Compile'
return assemblyDirectory.ToLowerInvariant().Contains("buildagent\\work");
}
}
- 1. Как заставить TeamCity запускать nunit [Явный] тест
- 2. Как определить, выполняется ли тест mocha в node.js?
- 3. Тест NUnit не работает в TeamCity, но проходит локально
- 4. Specflow + NUnit + Teamcity versioning
- 5. Можно ли параметризовать тест nunit
- 6. Как запустить тест NUnit?
- 7. Исходный плагин Nunit для TeamCity
- 8. Как написать тест NUnit для надстройки NUnit?
- 9. Программно пропустить тест nunit
- 10. TeamCity результат теста NUnit визуализация
- 11. Как заставить TeamCity исключать категории тестов nunit?
- 12. Адаптер NUnit: почему один тест выполняется несколько раз?
- 13. Конфигурация TeamCity для запуска nUnit
- 14. Teamcity 9 Nunit 3 reporting
- 15. тест NUnit рабочий каталог
- 16. NUnit Theory заменяет тест?
- 17. Как получить текущий TestContext в TeamCity NUnit runner
- 18. TeamCity запускает тесты Nunit в Parallel
- 19. NUnit Ошибка: тест сборки
- 20. Тест NUnit под моно
- 21. Настройка параметров для тестов NUnit в TeamCity
- 22. BackgroundWorker не работает с TeamCity NUnit runner
- 23. Импорт результатов nunit в teamcity с тортом
- 24. MsBuild не работает с NUnit в Teamcity
- 25. Использование NUnit-2.5 RequiresSTAAttribute с TeamCity 4
- 26. Как написать интеграционный тест в NUnit?
- 27. Есть ли способ проверить, проходит ли тест селена через nunit или nunit-console?
- 28. написания тест, чтобы определить, если код выполняется в параллельном (будущем)
- 29. Тест NUnit умирает с SerializationException, но работает отлично, если не выполняется под NUnit
- 30. Неверный CurrentCulture при запуске теста nUnit в TeamCity
Зачем вам это нужно? –
Я знал, что кто-то спросит :) TeamCity не захватывает вывод консоли из FixtureSetup (http://youtrack.jetbrains.net/issue/TW-10588). Итак, я пишу обходное решение, которое будет записывать сообщения журнала из FixtureSetup и переписывать их в программе установки. Это обходное решение имеет смысл только при работе внутри бегуна TeamCity. – ripper234
Кто начинает FixtureSetup? (проект VS, командная строка TeamCity). Моя идея - попытаться перенаправить вывод в файл (или дополнительный исполняемый файл). –