SlideShare a Scribd company logo
1 of 39
xUnitハンズオン
xUnitフレームワークを通じた
プログラミング&テスト・スキルUP
はじめに
再掲
開催概要
• 開催日時
• 2016/12/27 火曜17時
• 2016/1/5〜1/x 木曜17時
• 会場
• CS+Lync
• 持ち物
• Visual Studio 2013もしくは2015
再掲
テキストとサンプルコード
• 社内の共有フォルダ
• 後ほどメールで連絡させてもらいます。
• SlideShare&GitHub
• オンラインからも取得できるようにしておきます。
• SlideShare :http://www.slideshare.net/mizukyfujitani
• GitHub :https://github.com/mizukyf
再掲
目的
• プログラミング・スキルUP
• C#/.NETの言語仕様を実践的に理解する
• LambdaやLINQといった「積極活用が望まれながら嫌煙されがち」な
事項のノウハウを得る
• OOPにおけるモジュール化の「あるべき」を理解する
• テスト・スキルUP
• 「テストしにくいコード」をテストする工夫をできるようになる
• 「テストしやすいコード」(≒品質高いコード)を意識したコーディ
ングやレビューができるようになる
再掲
そもそも前提として・・・
そこから一歩進んで
• そもそも前提として
• 「画面を突っつく」≠UT という事実を理解する
• 自分のプロジェクトでUTを実施する基礎知識を得る
• そこから一歩進んで
• ゆくゆくは"Hot Spot"(改修のたびに障害を起こす類のモジュール)
の単体テスト製造および継続メンテナンスの体制を構築していきたい
「志が低い」と言われそうですが、A___システムやB___システム
ではこれが限界なのではないかと考えています。。。
再掲
ようするに
• ハンズオンの目的は「UTを極める」ことにはない。
• UTを手段として自分たちのスキルUPするきっかけ提供。
• 自分のためのPlaygroundを手に入れたつもりで遊んでほしい。
• xUnitについてもっと知りたいという人は・・・
? ?
Javaneseな方は
JSerな方は
C#な方は
TypeScriptな方は
再掲
各回のコンテンツ(予定)
日付 会場 コンテンツ
2016/12/27 コラボレーション
スペースN/E
ハンズオンの開催概要、目的、
環境構築とはじめてのUTプロジェクト
2017/1/5 セミナールームX テストの書き方、アサーションの種類、セットアップ、
「別の方法で」実装してみよう
2017/1/12 コラボレーション
スペースN/E
開発手法TDDの紹介、UTのイメージ転換、
「テストしやすい」インターフェースを作ろう
2017/1/19 セミナールームY IO、日時、乱数、privateフィールド、
あらゆる「副作用」を局所化しよう
2017/1/26 コラボレーション
スペースW/S
予備回
再掲
前回の振り返り
前回の振り返り
• Visual StudioでNUnitのテスト・プロジェクトをセットアップ
し、実際にかんたんなテストを書いてみた
• そのなかでわかったこと:
• テストを書くためにコードリーディング力が試されること
• テストを書くために「別の方法で」実装する力が求められる(あそべ
る)こと
第2回
2017/01/05開催
サンプル・ソリューションを開く
• ハンズオン資料フォルダからZIPファイルをダウンロード
• ZIPファイルを展開
• VS2013もしくはVS2015でオープン
作業
テストクラスのいろは
ターミノロジー
• 用語法はxUnitの種類と同じだけあるといっても過言でない。
• これ以降NUnitの用語法に基づき説明をする。
• しかし同じような概念・同じような機能はxUnit系フレーム
ワーク一般に存在する。
ターミノロジー
用語 説明
Test Fixture Class テスト・メソッドをカテゴリや対象クラスごとにまとめるためのクラ
ス。
Test Method テストを実装するメソッド。正常系/異常系、引数の値域やその組み
合わせごとに分けて作るのが普通。
Set Up Method テストケース実行前のお決まりの準備作業を行うメソッド。
Dear down Method テストケース実行後のお決まりの事後処理を行うメソッド。
ターミノロジー
用語 説明
Test Runner NUnitやJUnitのテスト実行を司る実行ファイル。テストクラスやメ
ソッドに付与されたメタ情報(AttributeやAnnotation)を読み取って
実行対象や実行方法を判断。その後メソッドを実行してアサーション
の結果(テスト失敗を示す例外がスローされるかどうか)をまとめレ
ポート出力する。
Mock アプリケーション内における本来の呼び出し先の代わりに、テスト対
象のメソッドなどから呼び出されるメソッドを提供するクラス。
コンポーネント
TestFixtureAttribute(必須)
TestAttribute(必須)
※より高機能なAttribute
で代替させることも可能。
Arrangeでテストに必
要な下準備を行う
Assertで結果が満たす
べき条件を記述する
Actでテスト対象のメ
ソッドを実行する
作り方
① TestFixtureクラスを作成
• 一般にはテスト対象クラス1つに就きTestFixtureクラスも1つ
作成(決まりはない)
② SetUpメソッドを作成
• 個々のTestメソッドの前に都度かならず実行させたい処理があ
る場合に作成
③ TearDownメソッドを作成
• 個々のTestメソッドの後に都度かならず実行させたい処理があ
る場合に作成
④ Testメソッドを作成
• テスト対象クラスのメソッドやフィールドごと かつ 正常系/異
常系や引数の値域など条件ごとに作成(分け方に決まりはな
い)
Assertionの構文
• NUnitでは(JUnitでも)いくつかのAssertionの方式が用意さ
れているが、もっとも新しく使い勝手も良いのは以下の形式:
Assert.That( )結果値 , 制約
Action
戻り値のAssertion:
Assert.That( ), 制約
例外スローのAssertion:
制約オブジェクトはIs,Has,Throwsなどの構文
ヘルパー(ユーティリティ)を使って作成でき
る。
指定クラスのTestFixtureをつくる
1. アプリケーションの仕様を確認(講師から説明)
2. サンプル・ソリューションZIPをダウンロード
3. ZIPファイルを展開
4. Visual Studioでオープン
5. NuGetパッケージの復元(VS2013の手順は次項参照)
6. メイン・プロジェクト指定クラスに対応するTestFixtureク
ラスを作成する
7. とりあえずテストを実行してみる
※すでにテスト・プロジェクトとプロジェクト間参照、Nunitな
どの必要なアセンブリの参照追加は終わっている。
※TestUtilityクラスについては後ほど説明。
作業
VS2013
NuGetパッケージの復元
• ソリューション エクスプローラ上でソリューションを右ク
リック→[NuGet パッケージの復元の有効化]をクリック
• 確認ダイアログが表示されるので[はい]をクリック
• 再度ソリューションを右クリック→[ソリューションのNuGet
パッケージの管理]をクリック
• [復元]をクリック
参考
もう少しAttribute
TestAttributeのオプション
テストの説明を記述出来る
(レポートに使われるらしい)
期待される結果を記述して、メ
ソッド戻り値と照合させられる
※詳細はAPIリファレンスを参照のこと:https://github.com/nunit/docs/wiki/Test-Attribute
TestCaseAttribute
• 引数セットを定義して、同じテスト・メソッドをセット数分自
動で繰り返し呼び出させる。
• 引数セットごとに、"ExpectedResult"を指定することも可能。
※詳細はAPIリファレンスを参照のこと:https://github.com/nunit/docs/wiki/TestCase-Attribute
テストをさせたい引数セットを
Attributeとしていくつも指定可能
ValuesAttribute
• 引数ごとに値セットを定義して、値セット同士の総当りでテス
トさせる。
※詳細はAPIリファレンスを参照のこと:https://github.com/nunit/docs/wiki/Values-Attribute
引数ごとに取りうる値を指定してや
ることができる
SetUp/TearDownAttribute
• Attributeを指定することで、個々のテスト・メソッドの事前事
後に必ず実行するべき処理を定義できる。
※詳細はAPIリファレンスを参照のこと:https://github.com/nunit/docs/wiki/SetUp-Attribute,
https://github.com/nunit/docs/wiki/TearDown-Attribute
もっとAssertion
もっともシンプルなAssertion
メソッドの戻り値が満
たすべき条件を同値性
検証で表現
"Assert that result is equal to
expected value."
Is構文ヘルパー
• Isは単なる同値性の検証以外にも使用できる:
• Is.EqualTo(x) 同値であること
• Is.True/False true/falseであること
• Is.Null nullであること
• Is.NaN NaNであること
• Is.GreaterThan(x) xより大きいこと
• 条件は組み合わせることも出来る:
• Is.GreaterThan(x).And.LessThan(y)
• Is.Not.Zero.And.GreaterThan(x).And.LessThan(y)
Has構文ヘルパー
• コレクション(配列やリスト)の要素の値、値の範囲、要素の
数などに対する条件を組み立てることが出来る。
• 結果値のオブジェクトが持つ任意のプロパティの値に対する条
件を組み立てることも出来る。
コレクション(配列やリスト)の要素に関
する各種の条件を表現できる
"Assert that the array has some element equal to 2
and all of elements greater than 0."
Throws構文ヘルパー
• Throwsによりテスト対象のコードが例外を投げることを検証
できる。
• Throws.TypeOf<T> まさにそのT型の例外
• Throws.InstanceOf<T> T型かそのサブ型の例外
"Assert that the action throws exception that
instance of System.ArgumentException."
実際に使ってみよう
Throws構文ヘルパーを使う
1. テスト対象メソッドの仕様を確認
2. TestもしくはTestCaseAttribute付きのメソッドを作成
3. メソッド内にThrows構文ヘルパーを使用したテストのロ
ジックを記述する
4. テストを実行してみる
作業
SetUpAttributeを使う
1. 作成済みのTestもしくはTestCaseAttribute付きのメソッド
を見直し
2. 繰り返し登場する事前処理をメソッドに分離
3. 当該メソッドにSetUpAttributeを付与
4. テストを実行してみる
作業
TestCaseAttributeを使う
1. テスト対象メソッドの仕様を確認
2. TestCaseAttribute付きのメソッドを作成
3. メソッド内にテストのロジックを記述する
4. テストを実行してみる
作業
Has構文ヘルパーを使う
1. テスト対象メソッドの仕様を確認
2. TestもしくはTestCaseAttribute付きのメソッドを作成
3. メソッド内にHas構文ヘルパーを使用したテストのロジック
を記述する
4. テストを実行してみる
作業
まとめ
まとめ
• 今回のハンズオンでUTを作成するための部品について初歩的
知識を得た。
• 戻り値が特定の値であること、特定の範囲内であること、特定
の値を含むこと、例外をスローすること、などなどの条件(制
約)を使ってメソッドの仕様を表現できるようになった。
• 次回は・・・
• テストが可能になる条件 と、
• テストがしやすくなる条件 について。
注意
• AttributeやAssertionには今回紹介しきれなかったものがまだ
まだたくさんあります。
• 詳細はNUnitのAPIリファレンスや@IT、CodeZine、Qiitaのよ
うな技術系情報サイトの記事を参照のこと。
• xUnitのうちでもJUnitはNUnitと非常に似通ったAPIを提供して
います。JUnitの場合はAttributeの代わりにAnnotationを使用
することになります。

More Related Content

Viewers also liked

JP1/AJS2オペレータ勉強会
JP1/AJS2オペレータ勉強会JP1/AJS2オペレータ勉強会
JP1/AJS2オペレータ勉強会mizuky fujitani
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてTakuto Wada
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要Daiyu Hatakeyama
 
power-assert, mechanism and philosophy
power-assert, mechanism and philosophypower-assert, mechanism and philosophy
power-assert, mechanism and philosophyTakuto Wada
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみたYasushi Kato
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会VOYAGE GROUP
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介CData Software Japan
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6健太 田上
 

Viewers also liked (20)

Web API入門
Web API入門Web API入門
Web API入門
 
SIMD.js(ECMAScript 7)
SIMD.js(ECMAScript 7)SIMD.js(ECMAScript 7)
SIMD.js(ECMAScript 7)
 
JSer Class #3
JSer Class #3JSer Class #3
JSer Class #3
 
JSer Class #2
JSer Class #2JSer Class #2
JSer Class #2
 
One night Vue.js
One night Vue.jsOne night Vue.js
One night Vue.js
 
JP1/AJS2オペレータ勉強会
JP1/AJS2オペレータ勉強会JP1/AJS2オペレータ勉強会
JP1/AJS2オペレータ勉強会
 
JSer Class #1
JSer Class #1JSer Class #1
JSer Class #1
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Vue.js入門
Vue.js入門Vue.js入門
Vue.js入門
 
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係についてOSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
 
Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要
 
power-assert, mechanism and philosophy
power-assert, mechanism and philosophypower-assert, mechanism and philosophy
power-assert, mechanism and philosophy
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
Web API を気軽に使える ツールやサービスのご紹介
Web API を気軽に使えるツールやサービスのご紹介Web API を気軽に使えるツールやサービスのご紹介
Web API を気軽に使える ツールやサービスのご紹介
 
Hello Java
Hello JavaHello Java
Hello Java
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
 
Vue.js with Go
Vue.js with GoVue.js with Go
Vue.js with Go
 

Similar to xUnitハンズオン第2回テキスト

concrete5 の超便利アドオン Designer Content を極める!
concrete5 の超便利アドオン Designer Content を極める!concrete5 の超便利アドオン Designer Content を極める!
concrete5 の超便利アドオン Designer Content を極める!Katz Ueno
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門Kazuki Tsutsumi
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでStudy Group by SciencePark Corp.
 
論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10Noritada Shimizu
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Kazumi IWANAGA
 
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpTakeshi Komiya
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~拓将 平林
 
HoloLens RS4でWindowsML入門+Research mode実装
HoloLens RS4でWindowsML入門+Research mode実装HoloLens RS4でWindowsML入門+Research mode実装
HoloLens RS4でWindowsML入門+Research mode実装Akihiro Ueyama
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminarAtushi Sugiyama
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすDaisuke Taniwaki
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデルYuta Kashino
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回すこれ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回すStudy Group by SciencePark Corp.
 
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjpSphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjpTakeshi Komiya
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationYuichiro Saito
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダKenichi Yoshida
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編kimulla
 

Similar to xUnitハンズオン第2回テキスト (20)

concrete5 の超便利アドオン Designer Content を極める!
concrete5 の超便利アドオン Designer Content を極める!concrete5 の超便利アドオン Designer Content を極める!
concrete5 の超便利アドオン Designer Content を極める!
 
高速!Clojure Web 開発入門
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
 
論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10論理思考とプログラミング 2013f#10
論理思考とプログラミング 2013f#10
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
 
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
 
HoloLens RS4でWindowsML入門+Research mode実装
HoloLens RS4でWindowsML入門+Research mode実装HoloLens RS4でWindowsML入門+Research mode実装
HoloLens RS4でWindowsML入門+Research mode実装
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回すこれ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
これ以上ソースコードの負債を増やさないためにVisual Studioの静的解析とAzure PipelinesでCIを回す
 
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjpSphinx ではじめるドキュメント生活 2013 #sphinxconjp
Sphinx ではじめるドキュメント生活 2013 #sphinxconjp
 
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 PresentationMicrosoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
 
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダJAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
JAWS-UG三都物語 クラウドとデバイスが連携するアジェンダ
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 

xUnitハンズオン第2回テキスト