<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Testem &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/testem/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Wed, 31 Oct 2012 00:30:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>JavaScriptのテストツール「testem」が素晴らしいぞ</title>
		<link>https://blog.mach3.jp/2012/10/31/js-testem-script.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Wed, 31 Oct 2012 00:30:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Jasmine]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testem]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=2757</guid>

					<description><![CDATA[JavaScriptユニットテスト一年生の私が、Nettuts+ のチュートリアルで知ったテストツール 「testem」のお陰で大変捗ったので是非お勧めしたく、ここで紹介してみます。 testem ってなに testem [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>JavaScriptユニットテスト一年生の私が、<a href="http://net.tutsplus.com/tutorials/javascript-ajax/make-javascript-testing-fun-with-testem/">Nettuts+ のチュートリアル</a>で知ったテストツール 「<a href="https://lh6.googleusercontent.com/-PfCvl0NLxAk/UJALoNXxsFI/AAAAAAAABo8/nUGSw2u6OTc/s400/20121031-00.png">testem</a>」のお陰で大変捗ったので是非お勧めしたく、ここで紹介してみます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/-PfCvl0NLxAk/UJALoNXxsFI/AAAAAAAABo8/nUGSw2u6OTc/s400/20121031-00.png" alt=""/></figure>



<p></p>



<span id="more-2757"></span>



<h2 class="wp-block-heading">testem ってなに</h2>



<h3 class="wp-block-heading">testem</h3>



<ul class="wp-block-list">
<li><a href="https://github.com/airportyh/testem">testem via GitHub : airportyh/testem</a></li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Unit testing in Javascript can be tedious and painful, but Testem makes it so easy that you will actually want to write tests.</p>
</blockquote>



<p>要するに、面倒なJSのユニットテストをより快適にしてみんなでハッピーにテスト書こうよ！というツールです。 testem自体は<em>node.js</em>ベースで動作し、<em>Jasmine/QUnit/Mocha</em>に対応しています。（デフォルトはJasmine）</p>



<p>test&#8217;em は<em>&#8220;Test them&#8221;</em>の省略形でしょう。 どんなテストもまとめて引き受けますよ！という事だと思います。</p>



<h3 class="wp-block-heading">具体的になにしてくれるの</h3>



<p>例えばJasmineで<em>「基礎的で面倒なテストの開始の仕方」</em>をした場合、</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ol class="wp-block-list">
<li>Jasmineのコードをとってきて設置し、</li>



<li>SpecRunner.html を編集し、</li>



<li>ブラウザでそのHTMLを開き、</li>



<li>テストを書いてブラウザをリフレッシュする</li>
</ol>
</blockquote>



<p>と、こんな感じの作業をプロジェクトの度に繰り返す事になります。</p>



<p>これが、testemでは</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ol class="wp-block-list">
<li>設定ファイルを書く</li>



<li>testem コマンドを叩く</li>
</ol>
</blockquote>



<p>だけでテストが始まります。</p>



<h2 class="wp-block-heading">インストール</h2>



<p>もしnode.jsが既にインストールされている環境ならば、<em>npm</em>コマンドだけで簡単に導入できます。 （node.jsがまだ入っていないのであれば、まずそちらを先に<a href="http://nodejs.org/">インストール</a>しましょう）</p>


<pre class="wp-block-code"><span><code class="hljs">$ npm install -g testem
</code></span></pre>


<p>正常にインストールできませんでしたか？ 環境によっては<em>sudo</em>が必要になるかもしれません。</p>


<pre class="wp-block-code"><span><code class="hljs">$ sudo npm install -g testem
</code></span></pre>


<p>これでtestemコマンドが使えるようになったはずです。 ヘルプでも覗いてみましょう。</p>


<pre class="wp-block-code"><span><code class="hljs">$ testem -h
</code></span></pre>


<h2 class="wp-block-heading">テストをしてみよう</h2>



<p>早速テストをしてみようと思います。仮に、次のようなディレクトリ構造にしてみましょう。 scripts/<em>.js がテスト対象のライブラリ、tests/</em>.js がテストです。 testem.json が設定ファイルになります。</p>


<pre class="wp-block-code"><span><code class="hljs">./
├ scripts/
│   └ foobar.js
├ tests/
│   └ test-foobar.js
└ testem.json （設定ファイル）
</code></span></pre>


<h3 class="wp-block-heading">設定ファイルを書く</h3>



<p>設定ファイルはJSONで記述します。必要最低限の設定は、こんな感じになります。</p>


<pre class="wp-block-code"><span><code class="hljs language-json">{
    <span class="hljs-attr">"framework"</span> : <span class="hljs-string">"jasmine"</span>,
    <span class="hljs-attr">"src_files"</span> : &#91;
        <span class="hljs-string">"scripts/foobar.js"</span>,
        <span class="hljs-string">"tests/test-foobar.js"</span>
    ]
}
</code></span></pre>


<ul class="wp-block-list">
<li><br /><p><em>framework</em><br /><br />使いたいテストフレームワークを書きます。デフォルトはJasmineなので、Jasmineを使う場合は省略できます。</p><br /></li>



<li><br /><p><em>src_files</em><br /><br />読み込むソースファイルを配列で記述しておきます。</p><br /></li>
</ul>



<h3 class="wp-block-heading">テストを開始する</h3>



<p><em>testem</em>コマンドを叩けばテストは開始されます。</p>


<pre class="wp-block-code"><span><code class="hljs">$ testem
</code></span></pre>


<p>実行すると次のような画面が表示されます。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/-TZqBngXCrzg/UJALoJRmoLI/AAAAAAAABo8/_c1s8iHfZrg/s500/20121031-01.png" alt=""/></figure>



<p></p>



<p>表示されたURL（http://localhost:7357）を、テストしたいブラウザで開きます。すると…</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-RBqfnMLtAEE/UJALojblQxI/AAAAAAAABo8/BxySZa4wyKk/s500/20121031-03.png" alt=""/></figure>



<p></p>



<p>ブラウザにはJasmineのテスト結果が。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/-QUbIOHh-vo0/UJALoBMroFI/AAAAAAAABo8/uGn0I0tuapY/s500/20121031-02.png" alt=""/></figure>



<p></p>



<p>ターミナルにもテスト結果が表示されます。</p>



<h3 class="wp-block-heading">ファイル更新を検知してくれる</h3>



<p>ソースファイルあるいはtestem.jsonを編集すると、更新を検知してブラウザとターミナルを自動的にリフレッシュしてくれます。 わざわざブラウザをアクティブにして更新する必要はありません。後はひたすらテストを書いていくのみです。</p>



<h2 class="wp-block-heading">実行時に自動的にブラウザを開く</h2>



<p>わざわざURLをコピーしてブラウザのアドレスバーに貼り付けるのが面倒！ そんな人の為に、<em>&#8220;launch_in_dev&#8221;</em>という設定項目があります。 設定ファイルにこれを追記する事で、<em>testem</em>コマンド実行時に自動的に、指定したブラウザでURLを開いてくれます。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">{
    <span class="hljs-string">"launch_in_dev"</span> : &#91;
        <span class="hljs-string">"Chrome"</span>
    ],
    ...
}
</code></span></pre>


<p>使えるブラウザのリストは、次のコマンドで知ることができます。</p>


<pre class="wp-block-code"><span><code class="hljs">$ testem launchers
</code></span></pre>


<p>Windows環境ならIE7,IE8,IE9等も表示されますね。 公式のREADMEによれば、IE9のモード切り替えでのテストだそうです。</p>



<p>ただし、この設定はテスト開始時に新しいウィンドウを開いてしまいます。 その開き方が好きでない方は、大人しくブックマークに登録しておきましょう。 （私はそうしました）</p>



<h2 class="wp-block-heading">Nettuts+ のチュートリアル</h2>



<p>基本的な部分は上で紹介していますが、CofeeScriptのコンパイルを挟んだりなど、 もう少し突っ込んだ使い方はNettuts+のチュートリアル動画でわかりやすく解説されていました。 英語ですが、作業画面見ているだけでも参考になると思います。</p>



<h3 class="wp-block-heading"><a href="http://www.youtube.com/watch?v=I0Py_tqCkTo">Make JavaScript Testing Fun With Testem &#8211; YouTube</a></h3>



<p><iframe width="500" height="375" src="http://www.youtube.com/embed/I0Py_tqCkTo" frameborder="0" allowfullscreen=""></iframe></p>



<p>cf) <a href="http://net.tutsplus.com/tutorials/javascript-ajax/make-javascript-testing-fun-with-testem/">Make JavaScript Testing Fun With Testem | Nettuts+</a></p>



<h2 class="wp-block-heading">まとめ</h2>



<p>面倒な部分を全部任せられるので、快適にテストをはじめられますね。 テストフレームワークだけでも有難いのに、至れり尽くせりで幸せです。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
