Skip to content

Commit 506c44a

Browse files
committed
修复在单元测试过程退出应用,单元测试将等待单元测试执行结果不会退出
单元测试的执行结果在等待 UI 线程调度,但是 UI 线程已经退出,不会再调度
1 parent 87de9d4 commit 506c44a

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/dotnetCampus.UITest.WPF/UITestMethodProxy.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ private protected override TestResult InvokeCore(ITestCase testCase)
2222
{
2323
var task = Application.Current.Dispatcher.Invoke(async () =>
2424
{
25-
return await contractTestCase.ExecuteAsync();
25+
var result = await contractTestCase.ExecuteAsync()
26+
// 如果在执行过程,应用退出了,那在没有加上 ConfigureAwait 设置为 false 那将需要调度回 UI 线程,才能返回
27+
// 由于应用退出了,也就是 UI 线程不会调度的任务
28+
// 因此不会返回,单元测试将会卡住
29+
.ConfigureAwait(false);
30+
return result;
2631
});
2732

2833
return task.Result;

0 commit comments

Comments
 (0)