Je suis très nouveau dans le framework d'automatisation de test CodedUI. Je suis tombé sur TestContext
qui a les informations importantes concernant les sorties de résultats de test et les répertoires. En fait, j'ai créé une classe statique Logger
qui écrit les données de sortie dans un fichier .txt
. Maintenant, je veux le créer sous le dossier TestResults
. Chaque fois que j'exécute la méthode de test, il crée un dossier suivi d'un horodatage. Je veux créer mon fichier Results.txt
à cet endroit. Ci-dessous le code que je utilise:Pouvons-nous attribuer une valeur TextContext.TestDeploymentDir à un membre de données de classe statique?
public static class Logger
{
string logLocation = TestContext.TestDeploymentDir + "\\Results.txt";
static Logger() {
File.Create(logLocation);
using (var fs = new FileStream(logLocation, FileMode.Truncate))
{
}
}
public static void ResultLog(int testcasenum,String Expected,String Actual, String textResult)
{
FileInfo outtxt = new FileInfo(logLocation);
StreamWriter logline = outtxt.AppendText();
logline.WriteLine("Test Case : " + testcasenum);
logline.WriteLine("{0},{1},{2}", "Expected - "+Expected, "Actual - "+Actual, "Result - "+textResult);
// flush and close file.
logline.Flush(); logline.Close();
}
}
Maintenant, je reçois une erreur de compilation disant A field initializer cannot reference the non-static field, method, or property TestContext.TestDeploymentDir.
Je ne sais pas comment résoudre cette erreur ou s'il est possible ou non?
Que doit faire le constructeur? La portée de 'var fs' est limitée au bloc' using' vide, de sorte qu'il n'a aucun effet utile au-delà, éventuellement, de la vidange du flux de sortie. – AdrianHHH
@AdrianHHH Je ne fais que tronquer le fichier journal. Aucune logique spécifiée pour faire quoi que ce soit. Juste vider le fichier ici. –