Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
e80dd4f2
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
e80dd4f2
编写于
6月 24, 2019
作者:
P
Pine
提交者:
GitHub
6月 24, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #76061 from microsoft/octref/new-test-runner-api
New test runner api
上级
b78d8d50
a559a214
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
25 addition
and
4 deletion
+25
-4
src/vs/workbench/api/node/extHostExtensionService.ts
src/vs/workbench/api/node/extHostExtensionService.ts
+25
-4
未找到文件。
src/vs/workbench/api/node/extHostExtensionService.ts
浏览文件 @
e80dd4f2
...
...
@@ -36,9 +36,15 @@ import { RemoteAuthorityResolverError, ExtensionExecutionContext } from 'vs/work
import
{
IURITransformer
}
from
'
vs/base/common/uriIpc
'
;
interface
ITestRunner
{
/** Old test runner API, as exported from `vscode/lib/testrunner` */
run
(
testsRoot
:
string
,
clb
:
(
error
:
Error
,
failures
?:
number
)
=>
void
):
void
;
}
interface
INewTestRunner
{
/** New test runner API, as explained in the extension test doc */
run
():
Promise
<
void
>
;
}
export
interface
IHostUtils
{
exit
(
code
?:
number
):
void
;
exists
(
path
:
string
):
Promise
<
boolean
>
;
...
...
@@ -525,7 +531,7 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
const
extensionTestsPath
=
originalFSPath
(
extensionTestsLocationURI
);
// Require the test runner via node require from the provided path
let
testRunner
:
ITestRunner
|
undefined
;
let
testRunner
:
ITestRunner
|
INewTestRunner
|
undefined
;
let
requireError
:
Error
|
undefined
;
try
{
testRunner
=
<
any
>
require
.
__$__nodeRequire
(
extensionTestsPath
);
...
...
@@ -533,10 +539,10 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
requireError
=
error
;
}
// Execute the runner if it follows
our
spec
// Execute the runner if it follows
the old `run`
spec
if
(
testRunner
&&
typeof
testRunner
.
run
===
'
function
'
)
{
return
new
Promise
<
void
>
((
c
,
e
)
=>
{
testRunner
!
.
run
(
extensionTestsPath
,
(
error
,
failures
)
=>
{
const
oldTestRunnerCallback
=
(
error
:
Error
,
failures
:
number
|
undefined
)
=>
{
if
(
error
)
{
e
(
error
.
toString
());
}
else
{
...
...
@@ -545,7 +551,22 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
// after tests have run, we shutdown the host
this
.
_gracefulExit
(
error
||
(
typeof
failures
===
'
number
'
&&
failures
>
0
)
?
1
/* ERROR */
:
0
/* OK */
);
};
const
runResult
=
testRunner
!
.
run
(
extensionTestsPath
,
oldTestRunnerCallback
);
// Using the new API `run(): Promise<void>`
if
(
runResult
&&
runResult
.
then
)
{
runResult
.
then
(()
=>
{
c
();
this
.
_gracefulExit
(
0
);
})
.
catch
((
err
)
=>
{
e
(
err
);
this
.
_gracefulExit
(
1
);
});
}
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录