首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitHub Action测试中未识别的命令

GitHub Action测试中未识别的命令
EN

Stack Overflow用户
提问于 2022-07-03 14:25:46
回答 1查看 113关注 0票数 0

我的单元测试在本地运行时通过。当提交分支时由GitHub操作执行时,此操作

代码语言:javascript
复制
on:
  push:
    branches:    
      - '*'         # matches every branch that doesn't contain a '/'
      - '*/*'       # matches every branch containing a single '/'
      - '**'        # matches every branch
      - '!master'   # excludes master

  workflow_dispatch:
    inputs:
      build:
        description: Unit tests
        type: boolean
        required: true
        default: "true"

jobs:
  build:
    strategy:
      matrix:
        os: [windows-latest]
        # os: [ubuntu-latest, windows-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Install Node.js
      uses: actions/setup-node@v1
      with:
        node-version: 16.x
    - run: npm install
    - run: npm i gulp gulp-cli -g
      if: runner.os == 'MacOS'
    - run: gulp
    - run: xvfb-run -a npm test
      if: runner.os == 'Linux'
    - run: npm test
      if: runner.os != 'Linux'

基本上运行npm test

当我在本地这样做的时候,效果很好:

代码语言:javascript
复制
npm test

> vscode-print@0.9.25 test
> node ./out/test/runTest.js

Debugger listening on ws://127.0.0.1:63067/252bd7f9-c748-45b4-b9e6-8ba21e9fc909
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
Found existing install in C:\Users\Peter\source\vsc-print\.vscode-test\vscode-win32-x64-archive-1.68.1. Skipping download

[16792:0704/000228.095:ERROR:node_bindings.cc(286)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.       
[16792:0704/000228.095:ERROR:node_bindings.cc(286)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.       
[main 2022-07-03T14:02:28.455Z] update#ctor - updates are disabled by the environment
[main 2022-07-03T14:02:29.679Z] Starting extension host with pid 32 (fork() took 15 ms).
Loading development extension at c:\Users\Peter\source\vsc-print
Decryption failed

  Print Extension Test Suite
    ✔ Check platform browser launch command on win32 (200ms)
    ✔ Check platform alternate browser launch command on win32 (112ms)
    ✔ Print active editor (304ms)
Could not find the language 'jsonc', did you forget to load/include a language module?
    ✔ Print folder (812ms)
  4 passing (2s)
[main 2022-07-03T14:02:32.887Z] Extension host with pid 32 exited with code: 0, signal: null.
Exit code:   0
Done

Waiting for the debugger to disconnect...

当Action运行它时,这就是输出。

代码语言:javascript
复制
Downloaded VS Code into D:\a\vsc-print\vsc-print\.vscode-test\vscode-win32-x64-archive-1.68.1
[main 2022-07-03T13:06:32.496Z] update#ctor - updates are disabled by the environment
workbench#open()
[main 2022-07-03T13:06:37.868Z] Calling fork to start extension host...
[main 2022-07-03T13:06:37.879Z] Starting extension host with pid 776 (fork() took 11 ms).
IExtensionHostStarter.start() took 42 ms.
Loading development extension at d:\a\vsc-print\vsc-print
  Print Extension Test Suite
    1) Check platform browser launch command on win32
Error: 4 tests failed.
    2) Check platform alternate browser launch command on win32
    3) Print active editor
    at d:\a\vsc-print\vsc-print\out\test\suite\index.js:25:27
    4) Print folder
    at done (d:\a\vsc-print\vsc-print\node_modules\mocha\lib\mocha.js:1009:7)
  0 passing (518ms)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
  4 failing
  1) Print Extension Test Suite
       Check platform browser launch command on win32:
     Error: command 'extension.test.browserLaunchCommand' not found
      at v._tryExecuteCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3532)
      at v.executeCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3414)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
  2) Print Extension Test Suite
       Check platform alternate browser launch command on win32:
     Error: command 'extension.test.browserLaunchCommand' not found
      at v._tryExecuteCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3532)
      at v.executeCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3414)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
  3) Print Extension Test Suite
       Print active editor:
     Error: command 'extension.test.flags' not found
      at v._tryExecuteCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3532)
      at v.executeCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3414)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
  4) Print Extension Test Suite
       Print folder:
     Error: command 'extension.test.flags' not found
      at v._tryExecuteCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3532)
      at v.executeCommand (vscode-file://vscode-app/d:/a/vsc-print/vsc-print/.vscode-test/vscode-win32-x64-archive-1.68.1/resources/app/out/vs/workbench/workbench.desktop.main.js:1706:3414)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
[main 2022-07-03T13:06:41.294Z] Waiting for extension host with pid 776 to exit.
[main 2022-07-03T13:06:41.330Z] Extension host with pid 776 exited with code: 1, signal: null.
Exit code:   1
Failed
Failed to run tests
Error: Process completed with exit code 1.

未识别的命令是在扩展激活事件开始时注册的。

代码语言:javascript
复制
export function activate(context: vscode.ExtensionContext) {
    let ecmPrint = vscode.workspace.getConfiguration("print", null).editorContextMenuItemPosition,
        etmButton = vscode.workspace.getConfiguration("print", null).editorTitleMenuButton,
        disposable: vscode.Disposable;
    vscode.commands.executeCommand("setContext", "ecmPrint", ecmPrint);
    vscode.commands.executeCommand("setContext", "etmButton", etmButton);

    context.subscriptions.push(vscode.workspace.onDidChangeConfiguration(checkConfigurationChange));
    context.subscriptions.push(vscode.commands.registerCommand("extension.print", printCommand));
    context.subscriptions.push(vscode.commands.registerCommand("extension.printFolder", printFolderCommand));
    context.subscriptions.push(vscode.commands.registerCommand("extension.test.flags", () => testFlags));
    context.subscriptions.push(vscode.commands.registerCommand("extension.test.browserLaunchCommand", PrintSession.getLaunchBrowserCommand));

这表明激活方法还没有被调用。这是我必须明确做的事情吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-03 22:37:07

我只是在extension.test.ts顶部注意到了这一点

代码语言:javascript
复制
// You can import and use all API from the 'vscode' module
// as well as import your extension to test it
import * as vscode from 'vscode';
// import * as myExtension from '../../extension';

我的测试不是这样写的。它们不导入代码并直接调用它,它们假设扩展已经安装并处于活动状态,并且使用已注册的命令。添加这些命令中的一些只是为了允许细粒度的单元测试。

我在问题中所描述的问题,是由于没有安装分机。

发现我可以从扩展中导入并不能解决所有问题。我的一些测试严格地说是集成测试。它们需要安装并激活扩展。

为了满足这一要求,gulp package而不是gulp build也将生产VSIX。唯一真正的诀窍是获得VSIX名称,以便在测试环境中安装它。

代码语言:javascript
复制
const vsixName = fs.readdirSync(extensionDevelopmentPath)
    .filter(p => path.extname(p) === ".vsix")
    .sort((a, b) => a < b ? 1 : a > b ? -1 : 0)[0];

const launchArgs = [
    path.resolve(__dirname, '../../src/test/test-docs'),
    "--install-extension",
    vsixName
];

混合方法是可能的;有些已注册命令仅供单元测试使用。这些电话可能会被抛弃,转而使用直拨电话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72847277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档