ho un test che ha bisogno di lavorare più di 1 minuto (VS2008, MSTest, i test vengono lanciati dal VisualStudio):MSTest: come aumentare il tempo di test
const int TestTimeout = 1;
[TestMethod]
[Timeout(10*60*1000)] // 10 minutes
public void Login_ExpirationFail_Test()
{
IAuthenticationParameters parameters = new AuthenticationParameters(...);
LdapAuthentication auth1 = new LdapAuthentication();
IAuthenticationLoginResult res = auth1.Login(parameters);
Assert.IsNotNull(res);
Assert.IsFalse(string.IsNullOrEmpty(res.SessionId));
const int AdditionalMilisecodns = 400;
System.Threading.Thread.Sleep((TestTimeout * 1000 + AdditionalMilisecodns) * 60);
LdapAuthentication auth2 = new LdapAuthentication();
auth2.CheckTicket(res.SessionId);
}
Questo test è finito in "Run" modalità con "Test" Login_ExpirationFail_Test "ha superato il periodo di timeout di esecuzione." messaggio di errore, in "Debug" - funziona bene.
Ho visto alcuni problemi simili legati al lancio di test dalla riga di comando.
Come ho potuto ottenere il mio test praticabile in modalità "Run"?
Grazie.
La tua matematica è sbagliata. L'hai scartata di un fattore 10. Inoltre, l'espressione e la costante sopra sono esattamente equivalenti perché il compilatore C# lo trasformerà nella stessa cosa (eccetto l'errore matematico). Se questa soluzione funzionasse, ho il sospetto che sia perché l'errore matematico ha portato il valore a un valore compreso nell'intervallo richiesto. –
Ehi Andrew, grazie per aver portato questo alla nostra attenzione. Quello era solo un errore di stampa nella risposta. Ho usato la matematica corretta nel mio codice sorgente. Non so perché questo abbia aiutato, ma così è stato. – Budda
@Budda Come è questa una risposta? Perché, * dovrebbe essere una costante *, una risposta? Un'espressione costante è proprio quella, costante e, come Andrew ha sottolineato, questo è ciò che il compilatore fa comunque. L'unica cosa che si riesce a realizzare con trasformarla in un te costante è un sacco di zeri che possono essere facilmente frainteso come credo che questa risposta si può attestare, l'espressione è fine e molto più leggibile. –