知識マップ: PesterによるPowerShellのテスト整備 ── 運用スクリプトを壊しにくくする実務の型
記事「PesterによるPowerShellのテスト整備 ── 運用スクリプトを壊しにくくする実務の型」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
この記事はPowerShellの運用スクリプトをPester v5で壊しにくくする実務手順を、テスト対象を守る仕組みの関係として整理します。Pesterは$TestDriveで本物のファイルに触れずにファイル操作を検証し、Mockで削除や通知のような危険操作を実行せず呼び出し条件だけを確認します。削除対象を選ぶ関数を危険な変更処理より先に切り出してテストし、日時をGet-Dateの直接呼び出しではなく引数として渡すことでテストの不安定性を防ぎます。GitHub ActionsやAzure PipelinesはPesterの実行を自動化しますが、Windowsに同梱される旧バージョンのPesterとは別に明示的な再インストールが必要で、社内プロキシやTLS設定がInstall-Moduleによるモジュール導入を妨げることもあります。
flowchart LR
accTitle: PesterによるPowerShellテスト整備の知識マップ
accDescr: PesterがPowerShellスクリプトを検証するテストフレームワークであり、TestDriveでファイル操作を、Mockで削除等の危険操作を安全に検証し、対象選定関数を危険操作より先に固め、日時を引数化してテストの不安定性を防ぎ、GitHub ActionsやAzure PipelinesでCIとして自動化する一方、Windows同梱の旧バージョンとの違いや社内プロキシによる導入阻害に注意する必要があることを示す図
pester["Pester"]
powershell["PowerShell"]
pester_testdrive["$TestDrive"]
pester_mock["Pesterのモック(Mock)"]
pester_tag["Pesterのタグ(Tag)"]
pester_code_coverage["PesterのCode Coverage"]
supportsshouldprocess["SupportsShouldProcess(-WhatIf)"]
destructive_operation_powershell["危険操作(削除・移動・上書きなど)"]
github_actions["GitHub Actions"]
azure_pipelines["Azure Pipelines"]
corporate_proxy_module_install_blocker["社内プロキシ/TLSによるモジュール導入の阻害"]
install_module_powershellgallery["Install-ModuleによるPowerShell Galleryからの導入"]
closed_network["閉域ネットワーク"]
target_selection_function["対象選定を切り出した関数"]
date_argument_injection["日付の引数化(Now引数)"]
test_flakiness["テストの不安定性(flaky test)"]
pester -->|"利用する"| powershell
pester -->|"利用する"| pester_testdrive
pester -->|"利用する"| pester_mock
pester -->|"利用する"| pester_tag
pester -->|"利用する"| pester_code_coverage
supportsshouldprocess -->|"軽減する"| destructive_operation_powershell
pester_mock -->|"推奨される対応"| destructive_operation_powershell
pester_testdrive -->|"軽減する"| destructive_operation_powershell
github_actions -->|"自動化する"| pester
azure_pipelines -->|"自動化する"| pester
corporate_proxy_module_install_blocker -.->|"両立しない"| install_module_powershellgallery
closed_network -->|"両立しない"| install_module_powershellgallery
destructive_operation_powershell -->|"で確認できる"| pester_mock
github_actions -.->|"利用する"| pester_tag
install_module_powershellgallery -->|"前提とする"| powershell
target_selection_function -->|"より先に行うべき"| destructive_operation_powershell
date_argument_injection -.->|"防止する"| test_flakiness
target_selection_function -.->|"利用する"| date_argument_injection
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- PesterはPowerShellを利用します。
- Pesterは$TestDriveを利用します。
- PesterはPesterのモック(Mock)を利用します。
- PesterはPesterのタグ(Tag)を利用します。
- PesterはPesterのCode Coverageを利用します。
- SupportsShouldProcess(-WhatIf)は危険操作(削除・移動・上書きなど)を軽減します。
- Pesterのモック(Mock)は危険操作(削除・移動・上書きなど)に対する本記事の推奨です。
- $TestDriveは危険操作(削除・移動・上書きなど)を軽減します。
- GitHub ActionsはPesterを自動化します。
- Azure PipelinesはPesterを自動化します。
- 社内プロキシ/TLSによるモジュール導入の阻害はInstall-ModuleによるPowerShell Galleryからの導入と両立しません。
- 閉域ネットワークはInstall-ModuleによるPowerShell Galleryからの導入と両立しません。
- 危険操作(削除・移動・上書きなど)はPesterのモック(Mock)で確認できます。
- GitHub ActionsはPesterのタグ(Tag)を利用します。
- Install-ModuleによるPowerShell Galleryからの導入はPowerShellを前提とします。
- 対象選定を切り出した関数は危険操作(削除・移動・上書きなど)より先に行うべきです。
- 日付の引数化(Now引数)はテストの不安定性(flaky test)を防ぎます。
- 対象選定を切り出した関数は日付の引数化(Now引数)を利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。