ReSharper 7 の機能まとめ

0.前置き

先日JetBrainsUsersGroupに参加しました。
第二回 JetBrainsユーザーグループ in 大阪開催しました #jbugj – ブログ・アンケート記入でIntelliJライセンスプレゼント
参加してるとき、ふとReSharperの機能を使いこなせているか不安になりました。
機能が多いですからね。ブログ書きながら機能の発掘(?)と整理をしてみようと思います。

1.ReSharperの紹介

ReSharperとは、Visual Studioの有償アドオンです。
Visual Studioに様々なコーディング支援機能を追加してくれます。
チェコに本社があるJetBrains社が開発しています。
(JetBrainsは他にもIntelliJ IDEAや、WebStormなど製品として持っています。)
最新バージョンは、7.1.2です。(2013年2月10日現在)

2.インストール

JetBrains社のページからダウンロードしてインストールすればよいです。
普通のインストーラーです。トライアル版もあるので、使ったことのない方はぜひどうぞ。
※アドオンであるため、Visual Studioの有償エディションにしかインストールできません。
製品のページはこちらです。

3.実際に使ってみる

※キーボードショートカットは「ReSharper 2.x or IntelliJ IDEA」を使ってます。
※機能がたくさんなので、ここに書いている内容は抜粋です。

◆コードナビゲーション(Navigate)
ソースコードを読むときに役立つ機能です。
ソリューション内の変数、クラス、ファイルに一発で移動できます。

「Ctrl+N」 クラスをその場で検索します。
「Ctrl+B」 変数の定義先に移動します。
「Ctrl+Shift+G」 どのナビゲーションで移動したいか候補を出してくれます。

「Ctrl+Shift+G」でNavigate to…を起動↓↓↓
navigate

◆リファクタリング(Refactor)
各種リファクタリングを支援してくれます。
特徴としては依存するコードもまとめて直してくれることでしょうか。
ビルドが失敗するような変更は、事前に警告を出してくれます。

「Alt + Enter」 コードを改善する何かを提示してくれます。varを使えるとか。不要なelseだとか。このコマンドは無敵です。
「F2」 Rename。名前の変更です。関係する部分も一括して変更してくれます。
「F6」 Move。クラスやファイルを、別の名前空間、ファイルなどに移動してくれます。
「Ctrl+Alt+M 」 Extract method。メソッドの抽出をします。
「Alt+Del」 Safe delete。影響範囲を示したうえで、安全に削除できます。
「Ctrl+Shift+R」 そのほか実行できるリファクタリングを提示してくれます。

またプロジェクトファイルを選択して、「Ctrl+Shift+R」をすることにより、
Remove Unused References(未使用の参照の削除)、Adjust Namespaces(名前空間の整理)を実行できます。
これはけっこう便利。

「Ctrl+Alt+M 」でExtract methodを起動↓↓↓
em

「Ctrl+Shift+R」でRefactor this…を起動↓↓↓
refactoring

◆コーディング支援(Edit)
コーディングを支援してくれる機能です。
コード保管や、コードやファイルの自動生成などあります。
Visual Studioとの機能とかぶるところもあるので、ちょっと使いこなしづらいのが難点。

「Alt + Space」 マニュアルでのコード補完。普段はキーを打つたびに補完の候補を出してくれます。
「Alt + Ins」 Generate Code。コンストラクタやプロパティなどを自動生成。
「Alt + Shift + Ins」 Create new file。クラスやインターフェイスなどを含むファイルを自動生成。
「Ctrl + J」 Insert Live Template。ctorとかpropとか忘れやすい短縮コードを一覧表示してくれます。
「Ctrl + Shift + V」 Paste。クリップボードのコピー履歴を残しておけます。

コピー履歴とか取れること知らなかったです。
「Alt + Shift + Ins」は、デフォルトでは数が少ない(class, interface, enum, struct)ので、自分でいくつか追加すると便利になると思います。

「Ctrl + J」で短縮コードの一覧を表示↓↓↓
tansyuku

◆検索支援
コンテキストを意識した検索をしてくれます。

「Alt + F7」 Find Usages。選択したものがどこで利用されているかリストアップします。特定できればジャンプします。

「Alt + F7」で検索を実行↓↓↓
search

◆単体テスト支援
ReSharperでは、MsTest、Nunit、Qunitをサポートし、単体テスト支援機能を提供します。

「Ctrl + T, Ctrl + R」 選択したコンテキストの単体テストを実行する。
「Ctrl + T, Ctrl + D」 選択したコンテキストの単体テストをデバッグモードで実行する。

ReSharperを入れていると、エディターの左にUTの実行ボタンが出現↓↓↓
ut

4.参考資料

5.おわりに

さらっとReSharperの機能を復習してみました。
けっこう抜粋したので、細かい機能はまだまだあります。
でも、困った時に使うコマンドを覚えておけば、とりあえずは良いかなと思います。
「Alt + Enter」、「Ctrl+Shift+G」、「Ctrl+Shift+R」あたり。
便利な機能を発見したら、随時このページをアップデートしていこうと思います。

QUnitとReSharper

0.前置き

ASP.NET MVCでのビューを開発する際や、Win8のメトロスタイルアプリを開発する際において、
JavaScriptの重要性がどんどん高まっています。
今までなんとなしに逃げてきたJavaScriptですが、本格的に取り組まなくてはいけません。
今回はそんなJavaScriptの開発におけるコンポーネントテストの方法をまとめておこうと思います。
普段仕事でReSharperを使っているので、ReSharper+QUnitの組み合わせでのテスト方法を簡単にまとめます。

1.それぞれのツールの紹介

QUnitとは
QUnitはもともとjQuery開発のために作成されたテスティングフレームワークです。
いまやjQueryへの依存がないため、JavaScriptのテスト一般に利用可能です。
ドキュメントは、こちらにあります。

ReSharper
ReSharperはVisualStudioのアドオンです。
開発生産性向上ツール?とでも言うのでしょうか。
コーディング支援、リファクタリング支援、コンポーネントテスト支援などなど多くの機能を搭載しています。
開発している会社は、JetBrainsで最新バージョンは6.1です。
詳しい情報は、こちらからどうぞ。

2.インストール

※ReSharperのインストールの話は省きます。
ReSharper(Ver.6以降)が入っていれば、QUnitのインストール作業は不要です。
ReSharperがビルドされた際には最新のQUnitが組み込まれているようです。
設定も特にないです。オプションにQUnitのテスト結果を表示するブラウザーを設定するぐらいです。

3.実際に使ってみる

3-1.テスト対象のJSファイルを作成する

calculate.jsとして、以下のコードを作成しました。

function add(x,y) {
    return x + y;
}

function substract(x,y) {
    return x - y;
}

function muliply(x,y) {
    return x * y;
}

3-2.テストを行うJSファイルを作成する

test/calculate.test.jsとして以下のコードを作成しました。

//↓ReSharperにテスト対象のコードを教えてあげます。
/// <reference path="../calculate.js"/>

//↓個々のテストメソッドをグループ化します。(QUnitの構文)
module("Calculator tests");

test("SumTest", function() {
    var result = add(2, 3);
    equals(5, result, "Sum of 2 and 3 is 5");
});

test("SubstractTest", function() {
    var result = substract(5, 1);
    equals(4, result, "Substracting 1 from 5 gives 4");
});

3-3.テストを実行する

*1. テストを実行する*
テストモジュールや、テストメソッドの左にテスト実行マーク(ReSharperの機能)が出るので
これを選択して実行します。

*2.Visual Studio上でテスト結果を確認する*
Visual Studio上で結果は確認できます。

*3.QUnitの標準の方法でテスト結果を確認する*
もちろんQUnit標準の方法で結果を確認することができます。

4.サンプルを書いてみての補足

QUnitの標準の方法ですと、テスト結果を表示するHTMファイルを作成する必要があります。
しかし、ReSharperを用いる場合は必要ないです。ReSharperがテスト実行時に勝手に作ってくれます。

5.サンプルコード

サンプルコードはgithubにホスティングしてあります。
QUnitのサンプル
テストコード本体

6.最後に

MsTestと同じ手法でコンポーネントテストを実施できるのは魅力的ですね。