orukRed / tyranosyntax

vscodeで動くティラノスクリプト言語サポート拡張機能です。
https://orukred.github.io/TyranoScriptSyntax.html
MIT License
13 stars 3 forks source link

VSCode デバッガーで実行した `Extension Tests` が失敗する #157

Closed botamochi0x12 closed 1 week ago

botamochi0x12 commented 1 week ago

概要

Extension Tests の実行が失敗します

手順

  1. ターミナルで npm ci を実行して依存関係をインストールします。
  2. VSCode を現在のディレクトリで開きます。
  3. VSCode GUI で Extension Tests デバッガーを実行します。

期待される動作

すべてのテストスイートがパスすること。

実際の動作

一部のテストスイートが失敗しています。

extensionHostProcess.js:148
  Extension Test Suite
extensionHostProcess.js:148
    ✔ サンプルテスト
extensionHostProcess.js:148
  InformationWorkSpace.getProjectRootPath
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  InformationWorkSpace.getProjectRootPath
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  InformationWorkSpace.getProjectFiles
extensionHostProcess.js:148
    1) 正常系:プロジェクトパスが多すぎるため、bgimage フォルダを指定
extensionHostProcess.js:148
    2) 異常系:不正なパスを指定
extensionHostProcess.js:148
    3) 異常系:パスでない文字列を指定
extensionHostProcess.js:148
    ✔ 異常系:undefined を指定
extensionHostProcess.js:148
    ✔ 異常系:空文字を指定
extensionHostProcess.js:148
  TyranoCompletionItemProvider.provideCompletionItems
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.conpletionLabel
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.completionVariable
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.completionFile
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.completionParameter
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.completionTag
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCompletionItemProvider.removeBracket
extensionHostProcess.js:148
    4) 正常系:[ ] がある文字列から [ ] が消えて返される
extensionHostProcess.js:148
    5) 正常系:[ ] がある文字列から [ ] が消えて返される
extensionHostProcess.js:148
    6) 異常系:[ ] がない文字列をそのまま返す
extensionHostProcess.js:148
  TyranoCreateTagByShortcutKey.KeyPushShiftEnter関数
extensionHostProcess.js:148
    ✔ 正常系
extensionHostProcess.js:148
  TyranoCreateTagByShortcutKey.KeyPushCtrlEnter関数
extensionHostProcess.js:148

原因:

Error: ENOENT: ファイルまたはディレクトリが存在しません '**\AppData\Local\Programs\Microsoft VS Code\undefined\Tooltip\tyrano.Tooltip.json

実行環境


In English # Failed Running `Extension Tests` Executed by VSCode Debugger ## Abstract Executing `Extension Tests` fails. ## Steps 1. On a terminal, run `npm ci` to install dependencies, 2. Open VSCode at the current directory, 3. On a VSCode GUI, execute the debugger named `Extension Tests`. ## Expected Behavior Passes the all test suites. ## Actual Behavior Fails some of the test suites. Caused by:: ```log Error: ENOENT: no such file or directory, open '**\AppData\Local\Programs\Microsoft VS Code\undefined\Tooltip\tyrano.Tooltip.json ``` ## Environment - Source Code: - `tyranosyntax` version: `ver0.24.0` == `master` == `39326dbc3b105a935bb19c2d4ff6499a197aa9f4` - OS: Windows 11 - Tools: - Node: 20.11.1 - Npm: 10.2.4 - VSCode: 1.91.0; `ea1445cc7016315d0f5728f8e8b12a45dc0a7286`; x64;
orukRed commented 1 week ago

issue作成ありがとうございます! テストコードのメンテさぼっていたので削除したメソッドが混じっていたりしていますね……

テストコードの見直しや全体的なリファクタリングも考慮に入れつつ対応したいと思います 🙇

botamochi0x12 commented 1 week ago

@orukRed ありがとうございます

私はこの拡張機能の開発に興味があります


ワークスペースへのパスが固定されていることが原因だと考えています: https://github.com/orukRed/tyranosyntax/blob/39326dbc3b105a935bb19c2d4ff6499a197aa9f4/src/test/runTest.ts#L20

可能ならワークスペースファイルかディレクトリ構造を共有していただけますか

orukRed commented 1 week ago

自分でもここの処理の意図が思い出せません……

すみませんがディレクトリ構造の共有に関しては一度保留とさせてください。 ただ、tyrano_test_projectは確かティラノスクリプト本体とほぼ同じ構造だったと記憶しています。

orukRed commented 1 week ago

テスト用のプロジェクトはこのリポジトリに含めておくとよさそうですね。 変更しておきます 🙏

orukRed commented 1 week ago

@botamochi0x12 プルリク作成しました。 お手数ですが、お手すきの際にご確認いただけますと幸いです。 https://github.com/orukRed/tyranosyntax/pull/158