我有一套Specflow測試,我正在運行,並且我試圖在每個方案完成後將結果寫到文件中,然後我在整個測試運行結束時重新寫入。如果我在調試模式下運行測試,那麼在每個場景之後都會觸發此代碼,但是在所有測試完成後(或者強制停止測試),文件纔會出現在Windows資源管理器中。 下面的代碼寫入文件位於Specflow測試項目的單獨項目中。C#文件沒有被寫入,直到應用程序結束運行
我本來不沖水和到位的StreamWriter的有這樣:
using (var file = new FileInfo(filePath).AppendText())
但我增加了額外的沖洗,關閉,然後再處理互聯網上查找各種例子後不能正常工作,所以。開始,更改爲StreamWriter,並沒有一個幫助。仍不能正常工作電流的代碼是:
private string rootFolderPath = Directory.GetParent(@"..\..\..\..") [email protected]"\";
public void WriteAllTestScenarioNames(List<ScenarioResult> results, string fileName, string directoryName)
{
results.Sort();
Directory.CreateDirectory(rootFolderPath + directoryName);
string filePath = rootFolderPath + directoryName + @"\" + fileName;
using (var file = new System.IO.StreamWriter(filePath))
{
file.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
foreach (var scenarioResult in results)
{
file.WriteLine(scenarioResult.ToString());
}
file.Flush();//flush the file to ensure that it's written now
file.Close();//flush the file to ensure that it's written now
}
Process.Start(filePath); //flush the file to ensure that it's written now
}
在這個例子中,我想只有3個在輸出文件中的行,當它終於完成,並在文件屬性的創建,修改和訪問的日期在Windows資源管理器中是相同的
我使用Windows 7 SP1企業64位用的.NET Framework 4.5.2
可能,我忘了提到,編寫文件的類與Specflow測試項目在不同的項目/程序集中。 – Steve