2015-06-27 4 views
1

Вот один из моих модульных тестов:выхода дисплея В NCrunch Test после изменения консоли Ouput потока

[<NCrunch.Framework.Isolated>] 
let [<Test>] ``inputX test``() = 
    let simulator = Simulator(@"H:\MyProj\Inputs" @@ @"inputX.txt",false) 
    use sw = new StringWriter() in Console.SetOut(sw) 
    simulator.Run() 
    let expected, actual = 
     File.ReadAllText(@"H:\MyProj\Inputs" @@ @"inputX.out").Replace("\r",""), 
     sw.ToString() 
    StringAssert.Contains(expected, actual) 

я printfn на протяжении всего кода тренажере, и до тех пор, как тест не проходит, NCrunch покажет выход в выходном окне.

Я хочу отображать информацию после утверждения, но я не могу понять, как это сделать и не может найти простой ответ.

Я думаю, может быть, мне нужно что-то вроде

Console.Set(NCrunchEnvironment.OuputStream) 
printfn "%A" stuff 

но не существует.

Должен ли я создать новый процесс для симулятора и «поймать» выход таким образом? Или, может быть, передать поток в симулятор (или вернуть его из него)?

ответ

0

NCrunch не делает ничего волшебного Я не думаю, я считаю, что он просто регистрирует прослушиватель трассировки и выводит сообщения, которые появляются в потоке трасс во время выполнения тестов.

Я не эксперт F #, но в C# мы просто используем метод Trace.WriteLine, и NCrunch отобразит все, что вы там положили. Я думаю, вы должны иметь возможность использовать тот же класс в F #