为什么Trace.WriteLine会打印随机字符而不是指定的字符?

Rus*_*ard 3 .net c# coded-ui-tests

我目前正在使用Coded UI编写自动化测试脚本.我在我的脚本中的各个点使用了Trace.Writeline来帮助找出测试可能失败的地方.一个这样的片段如下:

Trace.WriteLine(DateTime.Now.ToString("Enter press"));
Keyboard.SendKeys("{TAB}");
Trace.WriteLine(DateTime.Now.ToString("Tab press x 20"));
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Keyboard.SendKeys("{TAB 4}");
Trace.WriteLine(DateTime.Now.ToString("Asserting Period cell state."));
Run Code Online (Sandbox Code Playgroud)

但是,当测试运行时,我得到以下输出:

2018/01/26 - 15:29:45 | Step 1 
2018/01/26 - 15:30:17 | Step 2 
2018/01/26 - 15:30:54 | Step 3 
2018/01/26 - 15:31:08 | Step 4
2018/01/26 - 15:36:57 | Step 5 
2018/01/26 - 15:42:46 | Step 6
2018/01/26 - 15:42:55 | Step 7 
2018/01/26 - 15:43:04 | Step 10
2018/01/26 - 15:44:46 | Step 11 
EnPer pre46 
Tab pre47 x 20
A47erPinA.D. Perio26 cell 47PaPe.
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解为什么会这样吗?

Ren*_*ogt 7

DateTime.ToString(format)是一种从a创建字符串的方法DateTime.您传递的部分字符串将替换为时间值.例如:ssin "Asserting..."被秒替换.

改变这些行:

Trace.WriteLine(DateTime.Now.ToString("Tab press x 20"));
Run Code Online (Sandbox Code Playgroud)

你可能意味着像

Trace.WriteLine($"{DateTime.Now}: Tab press x 20");
Run Code Online (Sandbox Code Playgroud)