Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hidari Ikw
PDF, PPTX
6,802 views
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
第6回 PowerShell 勉強会 @日本マイクロソフト 関西支店でのLT資料です。
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 25
2
/ 25
3
/ 25
4
/ 25
5
/ 25
6
/ 25
7
/ 25
8
/ 25
9
/ 25
10
/ 25
Most read
11
/ 25
12
/ 25
13
/ 25
14
/ 25
15
/ 25
Most read
16
/ 25
Most read
17
/ 25
18
/ 25
19
/ 25
20
/ 25
21
/ 25
22
/ 25
23
/ 25
24
/ 25
25
/ 25
More Related Content
PPTX
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PDF
PostgreSQL Query Cache - "pqc"
by
Uptime Technologies LLC (JP)
PPT
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
PPTX
地理分散DBについて
by
Kumazaki Hiroki
PPTX
トランザクションの設計と進化
by
Kumazaki Hiroki
PDF
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
by
日本マイクロソフト株式会社
PPTX
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
コンテナネットワーキング(CNI)最前線
by
Motonori Shindo
PostgreSQL Query Cache - "pqc"
by
Uptime Technologies LLC (JP)
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
地理分散DBについて
by
Kumazaki Hiroki
トランザクションの設計と進化
by
Kumazaki Hiroki
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
by
日本マイクロソフト株式会社
本当は恐ろしい分散システムの話
by
Kumazaki Hiroki
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
What's hot
PDF
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
PDF
Hadoop入門
by
Preferred Networks
PPTX
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PDF
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
PDF
PostgreSQLレプリケーション徹底紹介
by
NTT DATA OSS Professional Services
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Vacuum徹底解説
by
Masahiko Sawada
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
PPTX
MongoDBの監視
by
Tetsutaro Watanabe
PDF
BuildKitの概要と最近の機能
by
Kohei Tokunaga
PDF
WindowsのCP932に苦闘している件
by
Hidetoshi Hirokawa
PDF
Yahoo! JAPANにおけるApache Cassandraへの取り組み
by
Yahoo!デベロッパーネットワーク
PDF
Amazon ElastiCacheのはじめ方
by
Amazon Web Services Japan
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PDF
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
PDF
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
PostgreSQL 15の新機能を徹底解説
by
Masahiko Sawada
Hadoop入門
by
Preferred Networks
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
あなたの知らないPostgreSQL監視の世界
by
Yoshinori Nakanishi
PostgreSQLレプリケーション徹底紹介
by
NTT DATA OSS Professional Services
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Vacuum徹底解説
by
Masahiko Sawada
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
by
NTT DATA Technology & Innovation
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
by
Shota Shinogi
MongoDBの監視
by
Tetsutaro Watanabe
BuildKitの概要と最近の機能
by
Kohei Tokunaga
WindowsのCP932に苦闘している件
by
Hidetoshi Hirokawa
Yahoo! JAPANにおけるApache Cassandraへの取り組み
by
Yahoo!デベロッパーネットワーク
Amazon ElastiCacheのはじめ方
by
Amazon Web Services Japan
DockerとPodmanの比較
by
Akihiro Suda
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
AWS Lambdaで作るクローラー/スクレイピング
by
Takuro Sasaki
Viewers also liked
PDF
PowerShellが苦手だった男がPowerShellを愛するようになるまで
by
Kazuhiro Matsushima
PPTX
Azure Storage Partition Internals
by
Takekazu Omi
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PDF
Grani's way of thinking infrastructure
by
Saito Ryuichi
PDF
A Framework for LightUp Applications of Grani
by
Yoshifumi Kawai
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
PPTX
Unit testing powershell
by
Matt Wrock
PDF
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
by
Masaru Kurahayashi
PPTX
DevOps Practices:Configuration as Code
by
Doug Seven
PPTX
がんばれガンプ ソルバルウを倒せについて
by
Tomohiro Suzuki
PDF
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
PowerShellが苦手だった男がPowerShellを愛するようになるまで
by
Kazuhiro Matsushima
Azure Storage Partition Internals
by
Takekazu Omi
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
Grani's way of thinking infrastructure
by
Saito Ryuichi
A Framework for LightUp Applications of Grani
by
Yoshifumi Kawai
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
by
Nov Matake
Unit testing powershell
by
Matt Wrock
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
by
Masaru Kurahayashi
DevOps Practices:Configuration as Code
by
Doug Seven
がんばれガンプ ソルバルウを倒せについて
by
Tomohiro Suzuki
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
More from Hidari Ikw
PDF
Psakeちょこっとだけ
by
Hidari Ikw
PDF
Windowsでの自動化の手段
by
Hidari Ikw
PDF
Xmlシリアライズ
by
Hidari Ikw
PDF
若さゆえの継続的アクション
by
Hidari Ikw
PDF
勝手に始めるというプラクティス
by
Hidari Ikw
PDF
Jenkinsからはじめた若者のための新ツール一歩目
by
Hidari Ikw
Psakeちょこっとだけ
by
Hidari Ikw
Windowsでの自動化の手段
by
Hidari Ikw
Xmlシリアライズ
by
Hidari Ikw
若さゆえの継続的アクション
by
Hidari Ikw
勝手に始めるというプラクティス
by
Hidari Ikw
Jenkinsからはじめた若者のための新ツール一歩目
by
Hidari Ikw
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
1.
それでも僕は ユニットテストを書きたい Pester - powered
by PowerShell 2016/4/9(Sat) 第 6 回 PowerShell 勉強会 @日本マイクロソフト 関西支店 Twitter: @HIDARI0415
2.
Pester
3.
Pesterとは ❏ PowerShellのためのテスティングフレームワーク ❏ 内部はPowerShellで書かれたDSL ❏
Windows 10から標準搭載 ❏ NuGetから手に入る ❏ PowerShell本家のテストもPesterに移行中 ❏ BDDスタイルでテストを記述
4.
Pesterとは Describe "意識高い系" { It
"ビジネスのオポチュニティ" { Set-価値ある仕事 | Should Be "すごい価値が生まれる" } } BDDスタイル Assert.AreEqual(expected, hoge); 参考:TDDスタイル
5.
Pesterとは ❏ Invoke-Pesterコマンドでテストを実行 ❏ *.Tests.ps1というファイルをテストとして実行 ❏
現在のフォルダで再帰的にファイルを検索 ❏ -TestName オプションでテスト名を指定可能 C:PS> Invoke-Pester C:PS> Invoke-Pester -TestName 意識高い系, スタバMacドヤリング
6.
Features
7.
Pesterの特徴 ❏ 安全なテストのためのTestDrive ❏ パワフルなMock ❏
デフォルトでCodeCoverageを計測可能 ❏ CIのための複数のオプション
8.
Pesterの特徴 ❏ 安全なテストのためのTestDrive ❏ パワフルなMock ❏
デフォルトでCodeCoverageを計測可能 ❏ CIのための複数のオプション
9.
Pesterの特徴 ー 安全なテストのためのTestDrive ❏
TestDrive: or $TestDrive でテスト実行時の一時的な ドライブにアクセス ❏ ファイル操作での副作用のある挙動をテスト
10.
function Add-付加価値($path, $付加価値)
{ Add-Content $path -Value $付加価値 } Describe "Add-付加価値" { $testPath = "TestDrive:付加価値のあるテキスト.txt" Set-Content $testPath -value "ビジネスを円滑に進めるソリューション" Add-付加価値 $testPath " -高い付加価値" $result = Get-Content $testPath It "adds a 付加価値" { (-join $result) ` | Should Be "ビジネスを円滑に進めるソリューション -高い付加価値" } } Pesterの特徴 ー 安全なテストのためのTestDrive
11.
❏ TestDriveはDescribe開始時に作成、終了時に破棄される ❏ 各Contextで追加されたファイルは終了時に削除される ❏
Context内でのファイル内容の変更は次のContextに持ち 越されるので注意 Pesterの特徴 ー 安全なテストのためのTestDrive
12.
Pesterの特徴 ❏ 安全なテストのためのTestDrive ❏ パワフルなMock ❏
デフォルトでCodeCoverageを計測可能 ❏ CIのための複数のオプション
13.
❏ Mockによるシンプルな記述 ❏ Assert-VerifiableMocks、Assert-MockCalledによ るパワフルなチェック Pesterの特徴
ー パワフルなMock
14.
Mock ❏ 指定したコマンドをモック化する ❏ 特定のパラメータで呼び出されたときだけモック化可能 Pesterの特徴
ー パワフルなMock Mock ` -CommandName Get-ChildItem ` -MockWith {return @{FullName = "A_File.TXT"} } ` -ParameterFilter {$Path -and $Path.StartsWith($env:temp)}
15.
Assert-VerifiableMocks ❏ -VerifiableなMockが呼ばれたかをチェック Pesterの特徴 ー
パワフルなMock Mock `Set-Content {} ` -Verifiable ` -ParameterFilter {$Value -eq "Expected Value"} Set-Content some_path -Value "Expected Value" Assert-VerifiableMocks
16.
Assert-MockCalled ❏ Mockが指定回数呼ばれているかをチェック Pesterの特徴 ー
パワフルなMock Mock Set-Content ` -ParameterFilter {$path.StartsWith("$env:temp")} Assert-MockCalled ` -CommandName Set-Content ` -Times 2 ` -ParameterFilter { $path -eq "$env:temptest.txt" }
17.
Pesterの特徴 ❏ 安全なテストのためのTestDrive ❏ パワフルなMock ❏
デフォルトでCodeCoverageを計測可能 ❏ CIのための複数のオプション
18.
❏ Invoke-Pesterの-CodeCoverageパラメータを使用 ❏ 分析対象をファイルパスか、ファイルパスを含む hashtableで指定 Pesterの特徴
ー デフォルトでCodeCoverageを計測可能
19.
C:PS> Invoke-Pester .結果にコミットする.Tests.ps1
` -CodeCoverage @{Path='.結果にコミットする.ps1'; Function='ライ●ップ'} Code coverage report: Covered 66.67 % of 3 analyzed commands in 1 file. Missed commands: File Function Line Command ---- -------- ---- ------- 結果にコミットする.ps1 ライ●ップ 5 return '世界一のボディメイクを達成' Pesterの特徴 ー デフォルトでCodeCoverageを計測可能
20.
❏ 安全なテストのためのTestDrive ❏ パワフルなMock ❏
デフォルトでCodeCoverageを計測可能 ❏ CIのための複数のオプション Pesterの特徴
21.
❏ Invoke-PesterにCIのためのパラメータ ❏ -OutputFileパラメータを使ってNUnit形式のXMLを出力で きるので、お好みのCIツールを使って解決 ❏
-EnableExitスイッチを指定するとリターンコードを伴って PowerShellのセッションを終了する Pesterの特徴 ー CIのための複数のオプション
22.
❏ -PassThru でInvoke-Pesterの実行結果を格納したオブジェ クトを返す ❏
CI環境で直接PowerShellを実行出来るならこのオブジェク トを使って後続処理 ❏ TotalCount/PassedCount/FailedCount ❏ Time ❏ TestResult Pesterの特徴 ー CIのための複数のオプション
23.
Information
24.
Pesterの情報 ❏ Pester Wiki ❏
PowershellでPesterを使ってテストしてみた - なか日記 ❏ PesterのMock機能をもう少し詳しく│株式会社シフト ❏ Get started with Pester (PowerShell unit testing framework) ❏ Testing your PowerShell scripts with Pester: Assertions and more
25.
Enjoy Testing, Enjoy
Pester!
Download