Test-Json returns wrong error when SchemaFile is not found
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 74/100
調査の方向性
TestJsonCommand.BeginProcessing と JsonSchema.FromFile の呼び出しから始め、次に fooSchema.json が存在しない状態で、提供されている Test-Json の再現を実行します。完了条件は、存在しないスキーマによって、現在のファイルオープン時の文言ではなく、報告されたパスに対して期待される「Cannot find JSON schema file」エラーが生成されることです。
索引モデルが issue の本文から書いたものです。
説明
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
Steps to reproduce
Use a valid json file test.json as shown in below example. Test its schema by passing an invalid schema file json.
> cat test.json
{
"str": "somestring",
"int": 2026
}
>Test-Json -Path .\test.json -SchemaFile .\fooSchema.json
Expected behavior
Test-Json: Cannot find JSON schema file: C:\Windows\Temp\fooSchema.json
Actual behavior
> Test-Json: Can not open JSON schema file: C:\Windows\Temp\fooSchema.json
Error details
Exception :
Type : System.Exception
TargetSite :
Name : ThrowTerminatingError
DeclaringType : [System.Management.Automation.MshCommandRuntime]
MemberType : Method
Module : System.Management.Automation.dll
Message : Can not open JSON schema file: C:\Windows\Temp\fooSchema.json
InnerException :
Type : System.IO.FileNotFoundException
Message : Could not find file 'C:\Windows\Temp\fooSchema.json'.
FileName : C:\Windows\Temp\fooSchema.json
TargetSite :
Name : CreateFile
DeclaringType : [Microsoft.Win32.SafeHandles.SafeFileHandle]
MemberType : Method
Module : System.Private.CoreLib.dll
Source : System.Private.CoreLib
HResult : -2147024894
StackTrace :
at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
at System.IO.StreamReader.ValidateArgsAndOpenPath(String path, Int32 bufferSize)
at System.IO.File.ReadAllText(String path, Encoding encoding)
at Json.Schema.JsonSchema.FromFile(String fileName)
at Microsoft.PowerShell.Commands.TestJsonCommand.BeginProcessing()
Source : System.Management.Automation
HResult : -2146233088
StackTrace :
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject : C:\Windows\Temp\fooSchema.json
CategoryInfo : OpenError: (C:\Windows\Temp\fooSchema.json:String) [Test-Json], Exception
FullyQualifiedErrorId : JsonSchemaFileOpenFailure,Microsoft.PowerShell.Commands.TestJsonCommand
InvocationInfo :
MyCommand : Test-Json
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : 1
Line : Test-Json -Path .\test.json -SchemaFile .\fooSchema.json
Statement : Test-Json -Path .\test.json -SchemaFile .\fooSchema.json
PositionMessage : At line:1 char:1
+ Test-Json -Path .\test.json -SchemaFile .\fooSchema.json
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InvocationName : Test-Json
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
Environment data
#Windows
Name Value
---- -----
PSVersion 7.6.5
PSEdition Core
GitCommitId 7.6.5
OS Microsoft Windows 10.0.26200
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.4
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
#Linux
Name Value
---- -----
PSVersion 7.4.2
PSEdition Core
GitCommitId 7.4.2
OS Ubuntu 20.04.6 LTS
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Visuals
No response
- 主要言語
- C#
- スター
- 55.5k
- フォーク
- 8.5k
- 平均マージ
- 1日 17時間
- マージ済み PR(30日)
- 97
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PowerShell/PowerShell のほかの issue
-
Issue-Enhancement Needs-Triage
難易度 1/5 1時間未満 初心者へのやさしさ 86/100
PowerShell/PowerShell#28061 · リアクション 2 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
PowerShell/PowerShell#28037 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PowerShell/PowerShell#27720 ·
-
Issue-Bug Up-for-Grabs WG-Cmdlets WG-Reviewed
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
PowerShell/PowerShell#27670 · コメント 3 件 ·
-
Issue-Bug Up-for-Grabs WG-Reviewed
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
PowerShell/PowerShell#27656 · コメント 2 件 ·
PowerShell/PowerShell の issue をすべて見る
似ている issue
-
Documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
cake-build/cake#5024 ·
-
Frontend status/draft TechnicalDebt
難易度 2/5 1〜2日 初心者へのやさしさ 75/100
Altinn/altinn-auth#4143 ·
-
.NET Flaky Test Testing Tests
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
getsentry/sentry-dotnet#5617 · コメント 1 件 ·
-
:watch: Not Triaged dotnet-fsharp/svc
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
Client customer-reported needs-team-attention question Service Attention WebPubSub
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Azure/azure-sdk-for-net#63292 · コメント 3 件 · リアクション 1 件 ·