Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b9eafe5f
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,体验更适合开发者的 AI 搜索 >>
提交
b9eafe5f
编写于
4月 23, 2020
作者:
R
rebornix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
intergration tests.
上级
ab42ffc4
变更
16
展开全部
隐藏空白更改
内联
并排
Showing
16 changed file
with
1085 addition
and
2 deletion
+1085
-2
.vscode/launch.json
.vscode/launch.json
+18
-0
build/lib/extensions.js
build/lib/extensions.js
+1
-0
build/lib/extensions.ts
build/lib/extensions.ts
+1
-0
extensions/vscode-notebook-tests/.vscode/launch.json
extensions/vscode-notebook-tests/.vscode/launch.json
+17
-0
extensions/vscode-notebook-tests/.vscode/tasks.json
extensions/vscode-notebook-tests/.vscode/tasks.json
+11
-0
extensions/vscode-notebook-tests/package.json
extensions/vscode-notebook-tests/package.json
+43
-0
extensions/vscode-notebook-tests/src/index.ts
extensions/vscode-notebook-tests/src/index.ts
+30
-0
extensions/vscode-notebook-tests/src/notebook.test.ts
extensions/vscode-notebook-tests/src/notebook.test.ts
+118
-0
extensions/vscode-notebook-tests/src/notebookTestMain.ts
extensions/vscode-notebook-tests/src/notebookTestMain.ts
+23
-0
extensions/vscode-notebook-tests/src/typings/ref.d.ts
extensions/vscode-notebook-tests/src/typings/ref.d.ts
+9
-0
extensions/vscode-notebook-tests/test/first.ipynb
extensions/vscode-notebook-tests/test/first.ipynb
+4
-0
extensions/vscode-notebook-tests/test/second.ipynb
extensions/vscode-notebook-tests/test/second.ipynb
+4
-0
extensions/vscode-notebook-tests/tsconfig.json
extensions/vscode-notebook-tests/tsconfig.json
+9
-0
extensions/vscode-notebook-tests/yarn.lock
extensions/vscode-notebook-tests/yarn.lock
+793
-0
scripts/test-integration.sh
scripts/test-integration.sh
+2
-0
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
...workbench/contrib/notebook/browser/contrib/coreActions.ts
+2
-2
未找到文件。
.vscode/launch.json
浏览文件 @
b9eafe5f
...
...
@@ -159,6 +159,24 @@
"order"
:
5
}
},
{
"type"
:
"extensionHost"
,
"request"
:
"launch"
,
"name"
:
"VS Code Notebook Tests"
,
"runtimeExecutable"
:
"${execPath}"
,
"args"
:
[
"${workspaceFolder}/extensions/vscode-notebook-tests/test"
,
"--extensionDevelopmentPath=${workspaceFolder}/extensions/vscode-notebook-tests"
,
"--extensionTestsPath=${workspaceFolder}/extensions/vscode-notebook-tests/out"
],
"outFiles"
:
[
"${workspaceFolder}/out/**/*.js"
],
"presentation"
:
{
"group"
:
"6_tests"
,
"order"
:
6
}
},
{
"type"
:
"chrome"
,
"request"
:
"attach"
,
...
...
build/lib/extensions.js
浏览文件 @
b9eafe5f
...
...
@@ -186,6 +186,7 @@ const excludedExtensions = [
'
vscode-test-resolver
'
,
'
ms-vscode.node-debug
'
,
'
ms-vscode.node-debug2
'
,
'
vscode-notebook-tests
'
];
const
builtInExtensions
=
JSON
.
parse
(
fs
.
readFileSync
(
path
.
join
(
__dirname
,
'
../../product.json
'
),
'
utf8
'
)).
builtInExtensions
;
function
packageLocalExtensionsStream
()
{
...
...
build/lib/extensions.ts
浏览文件 @
b9eafe5f
...
...
@@ -220,6 +220,7 @@ const excludedExtensions = [
'
vscode-test-resolver
'
,
'
ms-vscode.node-debug
'
,
'
ms-vscode.node-debug2
'
,
'
vscode-notebook-tests
'
];
interface
IBuiltInExtension
{
...
...
extensions/vscode-notebook-tests/.vscode/launch.json
0 → 100644
浏览文件 @
b9eafe5f
//
A
launch
configuration
that
compiles
the
extension
and
then
opens
it
inside
a
new
window
{
"version"
:
"0.1.0"
,
"configurations"
:
[
{
"name"
:
"Launch Tests"
,
"type"
:
"extensionHost"
,
"request"
:
"launch"
,
"runtimeExecutable"
:
"${execPath}"
,
"args"
:
[
"${workspaceFolder}/../../"
,
"${workspaceFolder}/test"
,
"--extensionDevelopmentPath=${workspaceFolder}"
,
"--extensionTestsPath=${workspaceFolder}/out"
],
"stopOnEntry"
:
false
,
"sourceMaps"
:
true
,
"outDir"
:
"${workspaceFolder}/out"
,
"preLaunchTask"
:
"npm"
}
]
}
\ No newline at end of file
extensions/vscode-notebook-tests/.vscode/tasks.json
0 → 100644
浏览文件 @
b9eafe5f
{
"version"
:
"2.0.0"
,
"command"
:
"npm"
,
"type"
:
"shell"
,
"presentation"
:
{
"reveal"
:
"silent"
},
"args"
:
[
"run"
,
"compile"
],
"isBackground"
:
true
,
"problemMatcher"
:
"$tsc-watch"
}
extensions/vscode-notebook-tests/package.json
0 → 100644
浏览文件 @
b9eafe5f
{
"name"
:
"vscode-notebook-tests"
,
"description"
:
"Notebook tests for VS Code"
,
"version"
:
"0.0.1"
,
"publisher"
:
"vscode"
,
"license"
:
"MIT"
,
"private"
:
true
,
"activationEvents"
:
[
"*"
],
"main"
:
"./out/notebookTestMain"
,
"enableProposedApi"
:
true
,
"engines"
:
{
"vscode"
:
"^1.25.0"
},
"scripts"
:
{
"compile"
:
"node ./node_modules/vscode/bin/compile -watch -p ./"
,
"vscode:prepublish"
:
"node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:vscode-notebook-tests ./tsconfig.json"
},
"dependencies"
:
{},
"devDependencies"
:
{
"typescript"
:
"^3.8.3"
,
"@types/node"
:
"^12.11.7"
,
"mocha-junit-reporter"
:
"^1.17.0"
,
"mocha-multi-reporters"
:
"^1.1.7"
,
"vscode"
:
"~1.1.36"
,
"mocha"
:
"^2.3.3"
},
"contributes"
:
{
"notebookProvider"
:
[
{
"viewType"
:
"notebookTest"
,
"displayName"
:
"Notebook Test"
,
"selector"
:
[
{
"filenamePattern"
:
"*.ipynb"
,
"excludeFileNamePattern"
:
"*.test.ipynb"
}
]
}
]
}
}
extensions/vscode-notebook-tests/src/index.ts
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
const
path
=
require
(
'
path
'
);
const
testRunner
=
require
(
'
vscode/lib/testrunner
'
);
const
suite
=
'
Integration Notebook Tests
'
;
const
options
:
any
=
{
ui
:
'
tdd
'
,
useColors
:
(
!
process
.
env
.
BUILD_ARTIFACTSTAGINGDIRECTORY
&&
process
.
platform
!==
'
win32
'
),
timeout
:
60000
};
if
(
process
.
env
.
BUILD_ARTIFACTSTAGINGDIRECTORY
)
{
options
.
reporter
=
'
mocha-multi-reporters
'
;
options
.
reporterOptions
=
{
reporterEnabled
:
'
spec, mocha-junit-reporter
'
,
mochaJunitReporterReporterOptions
:
{
testsuitesTitle
:
`
${
suite
}
${
process
.
platform
}
`
,
mochaFile
:
path
.
join
(
process
.
env
.
BUILD_ARTIFACTSTAGINGDIRECTORY
,
`test-results/
${
process
.
platform
}
-
${
suite
.
toLowerCase
().
replace
(
/
[^\w]
/g
,
'
-
'
)}
-results.xml`
)
}
};
}
testRunner
.
configure
(
options
);
export
=
testRunner
;
extensions/vscode-notebook-tests/src/notebook.test.ts
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
'
mocha
'
;
import
*
as
assert
from
'
assert
'
;
import
*
as
vscode
from
'
vscode
'
;
import
{
join
}
from
'
path
'
;
function
waitFor
(
ms
:
number
):
Promise
<
void
>
{
let
resolveFunc
:
()
=>
void
;
const
promise
=
new
Promise
<
void
>
(
resolve
=>
{
resolveFunc
=
resolve
;
});
setTimeout
(()
=>
{
resolveFunc
!
();
},
ms
);
return
promise
;
}
suite
(
'
notebook workflow
'
,
()
=>
{
test
(
'
notebook open
'
,
async
function
()
{
const
resource
=
vscode
.
Uri
.
parse
(
join
(
vscode
.
workspace
.
rootPath
||
''
,
'
./first.ipynb
'
));
await
vscode
.
commands
.
executeCommand
(
'
vscode.openWith
'
,
resource
,
'
notebookTest
'
);
await
waitFor
(
500
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!==
undefined
,
true
,
'
notebook first
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
source
,
'
test
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
language
,
'
typescript
'
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.code.insertCellBelow
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
source
,
''
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.code.insertCellAbove
'
);
const
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
notEqual
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
,
undefined
);
assert
.
equal
(
activeCell
!
.
source
,
''
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
length
,
3
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
1
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.files.save
'
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.closeActiveEditor
'
);
});
test
(
'
notebook cell actions
'
,
async
function
()
{
const
resource
=
vscode
.
Uri
.
parse
(
join
(
vscode
.
workspace
.
rootPath
||
''
,
'
./second.ipynb
'
));
await
vscode
.
commands
.
executeCommand
(
'
vscode.openWith
'
,
resource
,
'
notebookTest
'
);
await
waitFor
(
500
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!==
undefined
,
true
,
'
notebook first
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
source
,
'
test
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
language
,
'
typescript
'
);
// ---- insert cell below and focus ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.code.insertCellBelow
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
?.
source
,
''
);
// ---- insert cell above and focus ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.code.insertCellAbove
'
);
let
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
notEqual
(
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
,
undefined
);
assert
.
equal
(
activeCell
!
.
source
,
''
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
length
,
3
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
1
);
// ---- focus bottom ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.notebook.focusBottom
'
);
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
2
);
// ---- focus top and then copy down ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.notebook.focusTop
'
);
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
0
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.cell.copyDown
'
);
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
1
);
assert
.
equal
(
activeCell
?.
source
,
'
test
'
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.cell.delete
'
);
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
1
);
assert
.
equal
(
activeCell
?.
source
,
''
);
// ---- focus top and then copy up ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.notebook.focusTop
'
);
await
vscode
.
commands
.
executeCommand
(
'
workbench.notebook.cell.copyUp
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
length
,
4
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
[
0
].
source
,
'
test
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
[
1
].
source
,
'
test
'
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
[
2
].
source
,
''
);
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
[
3
].
source
,
''
);
activeCell
=
vscode
.
notebook
.
activeNotebookEditor
!
.
selection
;
assert
.
equal
(
vscode
.
notebook
.
activeNotebookEditor
!
.
document
.
cells
.
indexOf
(
activeCell
!
),
0
);
// ---- move up and down ---- //
// await vscode.commands.executeCommand('workbench.notebook.cell.moveDown');
// await vscode.commands.executeCommand('workbench.notebook.cell.moveDown');
// activeCell = vscode.notebook.activeNotebookEditor!.selection;
// assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2);
// assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[0].source, 'test');
// assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[1].source, '');
// assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[2].source, 'test');
// assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[3].source, '');
// ---- ---- //
await
vscode
.
commands
.
executeCommand
(
'
workbench.action.closeActiveEditor
'
);
});
});
extensions/vscode-notebook-tests/src/notebookTestMain.ts
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
*
as
vscode
from
'
vscode
'
;
export
function
activate
(
context
:
vscode
.
ExtensionContext
):
any
{
context
.
subscriptions
.
push
(
vscode
.
notebook
.
registerNotebookProvider
(
'
notebookTest
'
,
{
resolveNotebook
:
async
(
editor
:
vscode
.
NotebookEditor
)
=>
{
await
editor
.
edit
(
eb
=>
{
eb
.
insert
(
0
,
'
test
'
,
'
typescript
'
,
vscode
.
CellKind
.
Code
,
[],
{});
});
return
;
},
executeCell
:
async
(
_document
:
vscode
.
NotebookDocument
,
_cell
:
vscode
.
NotebookCell
|
undefined
,
_token
:
vscode
.
CancellationToken
)
=>
{
return
;
},
save
:
async
(
_document
:
vscode
.
NotebookDocument
)
=>
{
return
true
;
}
}));
}
extensions/vscode-notebook-tests/src/typings/ref.d.ts
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/// <reference path="../../../../src/vs/vscode.d.ts" />
/// <reference path="../../../../src/vs/vscode.proposed.d.ts" />
/// <reference types='@types/node'/>
extensions/vscode-notebook-tests/test/first.ipynb
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
extensions/vscode-notebook-tests/test/second.ipynb
0 → 100644
浏览文件 @
b9eafe5f
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
extensions/vscode-notebook-tests/tsconfig.json
0 → 100644
浏览文件 @
b9eafe5f
{
"extends"
:
"../shared.tsconfig.json"
,
"compilerOptions"
:
{
"outDir"
:
"./out"
},
"include"
:
[
"src/**/*"
]
}
\ No newline at end of file
extensions/vscode-notebook-tests/yarn.lock
0 → 100644
浏览文件 @
b9eafe5f
此差异已折叠。
点击以展开。
scripts/test-integration.sh
浏览文件 @
b9eafe5f
...
...
@@ -25,6 +25,7 @@ else
# and the build bundles extensions into .build webpacked
yarn gulp compile-extension:vscode-api-tests
\
compile-extension:vscode-colorize-tests
\
compile-extension:vscode-notebook-tests
\
compile-extension:markdown-language-features
\
compile-extension:emmet
\
compile-extension:css-language-features-server
\
...
...
@@ -44,6 +45,7 @@ fi
./scripts/test.sh
--runGlob
**
/
*
.integrationTest.js
"
$@
"
# Tests in the extension host
"
$INTEGRATION_TEST_ELECTRON_PATH
"
$LINUX_NO_SANDBOX
$ROOT
/extensions/vscode-notebook-tests/test
--enable-proposed-api
=
vscode.vscode-notebook-tests
--extensionDevelopmentPath
=
$ROOT
/extensions/vscode-notebook-tests
--extensionTestsPath
=
$ROOT
/extensions/vscode-notebook-tests/out/
--disable-telemetry
--disable-crash-reporter
--disable-updates
--disable-extensions
--skip-getting-started
--user-data-dir
=
$VSCODEUSERDATADIR
"
$INTEGRATION_TEST_ELECTRON_PATH
"
$LINUX_NO_SANDBOX
$ROOT
/extensions/vscode-api-tests/testWorkspace
--enable-proposed-api
=
vscode.vscode-api-tests
--extensionDevelopmentPath
=
$ROOT
/extensions/vscode-api-tests
--extensionTestsPath
=
$ROOT
/extensions/vscode-api-tests/out/singlefolder-tests
--disable-telemetry
--disable-crash-reporter
--disable-updates
--disable-extensions
--skip-getting-started
--user-data-dir
=
$VSCODEUSERDATADIR
"
$INTEGRATION_TEST_ELECTRON_PATH
"
$LINUX_NO_SANDBOX
$ROOT
/extensions/vscode-api-tests/testworkspace.code-workspace
--enable-proposed-api
=
vscode.vscode-api-tests
--extensionDevelopmentPath
=
$ROOT
/extensions/vscode-api-tests
--extensionTestsPath
=
$ROOT
/extensions/vscode-api-tests/out/workspace-tests
--disable-telemetry
--disable-crash-reporter
--disable-updates
--disable-extensions
--skip-getting-started
--user-data-dir
=
$VSCODEUSERDATADIR
"
$INTEGRATION_TEST_ELECTRON_PATH
"
$LINUX_NO_SANDBOX
$ROOT
/extensions/vscode-colorize-tests/test
--extensionDevelopmentPath
=
$ROOT
/extensions/vscode-colorize-tests
--extensionTestsPath
=
$ROOT
/extensions/vscode-colorize-tests/out
--disable-telemetry
--disable-crash-reporter
--disable-updates
--disable-extensions
--skip-getting-started
--user-data-dir
=
$VSCODEUSERDATADIR
...
...
src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts
浏览文件 @
b9eafe5f
...
...
@@ -687,8 +687,8 @@ registerAction2(class extends Action2 {
async
function
moveCell
(
context
:
INotebookCellActionContext
,
direction
:
'
up
'
|
'
down
'
):
Promise
<
void
>
{
const
result
=
direction
===
'
up
'
?
context
.
notebookEditor
.
moveCellUp
(
context
.
cell
)
:
context
.
notebookEditor
.
moveCellDown
(
context
.
cell
);
await
context
.
notebookEditor
.
moveCellUp
(
context
.
cell
)
:
await
context
.
notebookEditor
.
moveCellDown
(
context
.
cell
);
if
(
result
)
{
// move cell command only works when the cell container has focus
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录