Tôi chỉ cần chạy một số mã nếu tôi đang chạy từ bên trong trình khởi chạy thử nghiệm TeamCity. Cách dễ nhất để phát hiện điều này là gì?Làm cách nào để phát hiện xem thử nghiệm NUnit có đang chạy trong TeamCity không?
Trả lời
Kiểm tra xem biến môi trường TEAMCITY_VERSION có được xác định hay không.
Một cách tiếp cận khác là sử dụng danh mục NUnit.
Dựa trên những nhận xét bên dưới mã này sẽ có thể kiểm tra nếu thử nghiệm đang được chạy bởi TeamCity:
private static bool IsOnTeamCity()
{
string environmentVariableValue = Environment.GetEnvironmentVariable("TEAMCITY_VERSION");
if (!string.IsNullOrEmpty(environmentVariableValue))
{
return true;
}
return false;
}
đây là mã hoạt động dựa trên ý tưởng của Eugene: private static bool IsOnTeamCity() { môi trường chuỗiVariableValue = Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"); if (! String.IsNullOrEmpty (environmentVariableValue)) { trả về true; } trả về false; } –
Vì vậy, đơn giản hóa điều này sẽ hoạt động (?): 'return! String.IsNullOrEmpty (Environment.GetEnvironmentVariable (" TEAMCITY_VERSION "))' Tại sao thêm 'if' trả về' true/false'anyway? – NiKiZe
tôi về cơ bản làm điều đó với các tài sản sau đây. Nó nhận được tên thư mục thông qua cơ sở mã của hội đồng gọi và nếu nó chứa các phần của thư mục đại lý xây dựng TeamCity của bạn, nó đang chạy trong 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. FileNotFoundException khi chạy thử nghiệm NUnit từ TeamCity
- 2. Làm cách nào để TeamCity chạy thử nghiệm bằng MSTest?
- 3. NUnit không chạy thử nghiệm Suite
- 4. Tại sao các thử nghiệm mất nhiều thời gian để chạy trong TeamCity hơn khi chạy trực tiếp trong NUnit?
- 5. Chạy thử nghiệm NUnit từ thành phố Nhóm
- 6. Làm thế nào để có được TestContext hiện tại trong TeamCity NUnit runner
- 7. Làm cách nào để phát hiện xem IDE Delphi cụ thể có đang chạy không?
- 8. Chạy thử nghiệm NUnit mà không cần sử dụng chuột?
- 9. Làm cách nào để phát hiện xem IE8 có đang chạy trong chế độ xem tương thích không?
- 10. TeamCity không DLL cho một số NUnit thử nghiệm dự án
- 11. Làm thế nào tôi có thể chạy thử nghiệm NUnit (Selenium Grid) song song?
- 12. Làm cách nào để chạy thử nghiệm tích hợp?
- 13. Nunit: Có thể thử nghiệm xuất hiện lồng nhau
- 14. Làm thế nào để chạy Thử nghiệm NUnit từ C# Mã số
- 15. Chạy thử nghiệm Selenium trên nUnit không thực hiện kịch bản
- 16. Chạy các thử nghiệm NUnit riêng lẻ theo lập trình
- 17. Làm thế nào để chạy thử nghiệm NUnit đồ đạc serially?
- 18. Chạy thử nghiệm nUnit theo kiểu đa luồng
- 19. Làm thế nào để chạy thử nghiệm NUnit v2.4.8 với phiên bản 0.86 beta của NAnt?
- 20. Có cách nào để phát hiện hoạt ảnh đang chạy trong iOS không?
- 21. Làm cách nào để lấy tên phương thức thử nghiệm đơn vị khi chạy trong thử nghiệm đơn vị?
- 22. Làm thế nào để cấu hình TeamCity để chạy thử nghiệm đồng thời thay vì từng cái một?
- 23. Làm thế nào để có được các thuộc tính phương pháp thử nghiệm đơn vị khi chạy trong một thử nghiệm NUnit?
- 24. Tích hợp NUnit với teamcity
- 25. Cách phát hiện xem MemoryMappedFile có đang sử dụng không
- 26. Làm cách nào để phát hiện xem ứng dụng của tôi có đang chạy trên máy ảo không?
- 27. Tích hợp các thử nghiệm không chuẩn vào TeamCity
- 28. C#: Cách phát hiện xem trình đọc màn hình có đang chạy không?
- 29. Cách phát hiện xem tập lệnh có đang chạy trên máy ảo không?
- 30. Làm thế nào để ngăn chặn 'quá thử nghiệm' trong một trường hợp thử nghiệm? (C#/nUnit)
Tại sao bạn cần điều đó? –
Tôi biết ai đó sẽ hỏi :) TeamCity không nắm bắt đầu ra bàn điều khiển từ FixtureSetup (http://youtrack.jetbrains.net/issue/TW-10588). Vì vậy, tôi đang viết một workaround mà sẽ nắm bắt thông điệp tường trình từ FixtureSetup và viết lại chúng trên thiết lập. Cách giải quyết này chỉ có liên quan khi chạy bên trong nhân viên TeamCity. – ripper234
Ai bắt đầu FixtureSetup? (một dự án VS, TeamCity dòng lệnh) Ý tưởng của tôi là cố gắng chuyển tiếp đầu ra đến một tập tin (hoặc thực thi bổ sung). –