Ho bisogno di eseguire del codice solo se sto correndo dall'interno del launcher di test di TeamCity. Qual è il modo più semplice per rilevare questo?Come posso rilevare se un test NUnit è in esecuzione da all'interno di TeamCity?
risposta
Verificare se la variabile di ambiente TEAMCITY_VERSION è definita.
Un altro approccio consiste nell'utilizzare le categorie NUnit.
Sulla base del commento di sotto di questo codice dovrebbe essere in grado di verificare se il test è gestito da TeamCity:
private static bool IsOnTeamCity()
{
string environmentVariableValue = Environment.GetEnvironmentVariable("TEAMCITY_VERSION");
if (!string.IsNullOrEmpty(environmentVariableValue))
{
return true;
}
return false;
}
questo è un codice funzionante basato sull'idea di Eugene: private static bool IsOnTeamCity() { string environmentVariableValue = Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"); if (! String.IsNullOrEmpty (environmentVariableValue)) { return true; } return false; } –
Quindi semplificato questo dovrebbe funzionare (?): 'tornare string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("TEAMCITY_VERSION"))' Perché aggiungere l'extra 'if' che proprio restituisce' vero/false'anyway!? – NiKiZe
praticamente sto facendo che con la seguente proprietà. Ottiene il nome della directory tramite la base di codice dell'assembly chiamante e se contiene parti della directory dell'agente di generazione di TeamCity in esecuzione in 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. Esecuzione di test NUnit da Team city
- 2. FileNotFoundException durante l'esecuzione di test NUnit da TeamCity
- 3. Test di debug in esecuzione in NUnit
- 4. Test NUnit teamcity - Nessun gruppo trovato
- 5. Wrong CurrentCulture quando si esegue un test nUnit in TeamCity
- 6. Come posso rilevare se l'IDE Delphi specifico è in esecuzione?
- 7. Posso eseguire i test di esecuzione NUnit in ordine casuale?
- 8. NUnit Integrazione con teamcity
- 9. Come eseguire solo test nunit falliti in build teamcity
- 10. NUnit non in esecuzione Suite test
- 11. Come rilevare se un test di moka è in esecuzione in node.js?
- 12. Come posso rilevare se sono in esecuzione nella console
- 13. Come posso rilevare se il mio assembly .NET è in esecuzione da un sito Web o da un computer desktop?
- 14. È possibile parametrizzare un test di nunit
- 15. OSX: come rilevare se il controllo missione è in esecuzione?
- 16. Come ottenere corrente TestContext in TeamCity NUnit runner
- 17. Come configurare Teamcity per ignorare alcuni test
- 18. esecuzione pergolato da TeamCity (Windows)
- 19. Come rilevare se Vim è in esecuzione in modalità limitata?
- 20. Come rilevare se in esecuzione su localhost
- 21. File .bat in esecuzione da TeamCity
- 22. Come posso visualizzare i log di traccia .NET in TeamCity?
- 23. Come rilevare se uno script PHP è già in esecuzione?
- 24. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 25. Come rilevare se webpack-dev-server è in esecuzione?
- 26. C#: come rilevare se lo screen reader è in esecuzione?
- 27. Come rilevare se una pagina Web è in esecuzione da un sito Web o da un file system locale
- 28. Come posso rilevare se il mio codice è in esecuzione nella console in Rails 3?
- 29. Come posso rilevare se un prodotto firewall è abilitato?
- 30. Esecuzione programmata di test NUnit singoli a livello di programmazione
Perché è necessario? –
Sapevo che qualcuno avrebbe chiesto :) TeamCity non cattura l'output della console da FixtureSetup (http://youtrack.jetbrains.net/issue/TW-10588). Quindi, sto scrivendo una soluzione che catturerà i messaggi di log da FixtureSetup e li riscriverà durante l'installazione. Questa soluzione è rilevante solo quando si esegue all'interno del corridore di TeamCity. – ripper234
Chi avvia FixtureSetup? (un progetto VS, riga di comando di TeamCity) La mia idea è di provare a inoltrare l'output a un file (o eseguibile aggiuntivo). –