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;
}
이것은 Eugene의 아이디어에 기반한 코드입니다 : private static bool IsOnTeamCity() { string environmentVariableValue = Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"); if (! string.IsNullOrEmpty (environmentVariableValue)) { return true; } false를 반환합니다. } –
그래서이 일을해야 간단 (?) : '반환 string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("TEAMCITY_VERSION을"))' 은 왜 그냥'참/false'anyway를 반환 if''여분의 추가를!? – 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. Tomcat이 Apache에서 실행되고 있는지 어떻게 알 수 있습니까?
- 2. UpdatePanel 다시 게시에서 메서드가 실행되고 있는지 어떻게 알 수 있습니까?
- 3. VirtualBox에서 VM이 어떤 해상도로 실행되고 있는지 어떻게 알 수 있습니까?
- 4. erlang 프로세스가 어떤 노드에서 실행되고 있는지 어떻게 알 수 있습니까?
- 5. VBScript가 RDP Console에서 실행되고 있는지 어떻게 알 수 있습니까?
- 6. 내 코드가 어떤 모듈에서 실행되고 있는지 어떻게 알 수 있습니까?
- 7. 코드가 Rails 3의 콘솔에서 실행되고 있는지 어떻게 알 수 있습니까?
- 8. .exe가 C++로 실행되고 있는지 어떻게 알 수 있습니까?
- 9. Jmeter - 테스트가 완료되면 어떻게 알 수 있습니까?
- 10. Java에서 누수가 있는지 어떻게 알 수 있습니까?
- 11. TeamCity에서 nUnit 테스트를 실행하면 잘못된 CurrentCulture가 표시됩니다.
- 12. 드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
- 13. 개체가 비어 있는지 어떻게 알 수 있습니까?
- 14. 요소가 목록에 있는지 어떻게 알 수 있습니까?
- 15. 파이썬에 자식이 있는지 어떻게 알 수 있습니까?
- 16. QLineEdit에 포커스가 있는지 어떻게 알 수 있습니까?
- 17. Dispatcher.DisableProcessing이 활성화되어 있는지 어떻게 알 수 있습니까?
- 18. 오픈 릴레이가 있는지 어떻게 알 수 있습니까?
- 19. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 20. 테스트가 예외를 throw하고 그 예외가 무엇인지 NUnit TearDown에서 어떻게 알 수 있습니까?
- 21. 내가 어떻게 안드로이드에서 디버거에 있는지 알 수 있습니까?
- 22. 공유 포인트 포털 웹 사이트에서 어떤 공유 포인트 버전이 실행되고 있는지 어떻게 알 수 있습니까?
- 23. Perl에서 시스템 또는 qx 호출 내에서 스크립트가 실행되고 있는지 어떻게 알 수 있습니까?
- 24. 내 ASP.Net MVC 응용 프로그램이 어떤 사용자로 실행되고 있는지 어떻게 알 수 있습니까?
- 25. Silverlight에서 코드가 UI 스레드에서 실행되고 있는지 여부는 어떻게 알 수 있습니까?
- 26. 파이썬이 64 비트 응용 프로그램으로 실행되고 있는지 어떻게 알 수 있습니까?
- 27. 어떤 오픈 오피스 응용 프로그램이 실행되고 있는지 어떻게 알 수 있습니까?
- 28. PGSQL 데이터베이스 용으로 Windows Server 2003에서 자동 진공 (autovacuum)이 실행되고 있는지 어떻게 알 수 있습니까?
- 29. TeamCity에서 NUnit 테스트를 실행할 때 FileNotFoundException이 발생했습니다.
- 30. 프로세스가 파이프로 실행되고 있는지 확인하십시오.
왜 필요한가요? –
누군가 물어볼 줄 알았어. TeamCity가 FixtureSetup (http://youtrack.jetbrains.net/issue/TW-10588)의 콘솔 출력을 캡처하지 못합니다. 따라서 FixtureSetup에서 로그 메시지를 캡처하고 설치시 다시 작성하는 해결 방법을 작성 중입니다. 이 해결 방법은 TeamCity 러너에서 실행할 때만 관련이 있습니다. – ripper234
누가 FixtureSetup을 시작합니까? (VS 프로젝트, TeamCity 커맨드 라인) 제 생각은 출력을 파일 (또는 추가 실행 파일)로 전달하려고하는 것입니다. –