プログラムを中心とした個人的なメモ用のブログです。
タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。
Git で pull や checkout を行おうとした際、以下のメッセージが表示されて実行できなかったことがありました。
fatal: Unable to create '/hoge/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.
.git の中に index.lock があるので処理できないと言われています。
なので、とりあえずこれを手動で削除すれば実行できるようになるはずです。
しかし、私の場合、この現象が pull を途中で終了したことで起きるようになったせいか、中途半端にゴミのファイルが残ってしまい、いくるかのファイルの上書きができなくなって pull も checkout もできないままだったので、結局 clone し直しました。
Visual Studio 2015 で WPF のアプリケーションを開発していると、以下のメッセージが表示されてビルドがスキップされてしまうことがありました。
「プロジェクトはこのソリューション構成に対してビルドするように選択されていません。」
メニューバーから [ビルド] > [構成マネージャー] を選択します。
すると構成マネージャーの画面が表示されるので、該当のプロジェクトの「ビルド」にチェックを入れるとビルドできるようになります。
「テストコードのないコードはレガシーコードだ」というのはよく聞く話ですが、恥ずかしながら私もずっとテストコードを書く文化のない環境で働いてきたため、テストコードというものを書いたことがありません。
さすがにこのままではまずいと思い、C# で書いたコードでは MSTest でユニットテストを行う癖をつけたいと思いました。
というわけで、MSTest の導入方法です。
本当に最初の最初の導入方法について書いただけですが・・・。
まずはソリューション内にテストを行うためのプロジェクトを作成するようです。
MSDN よれば、1つのプロジェクトに対して1つのテストプロジェクトを作成するのが基本のようですね。
ソリューション内にプロジェクトが2つあれば、それぞれに対応するテストプロジェクトを作成(テストプロジェクトを2つ作成)するということですね。
テストプロジェクトの作成方法には2つの方法があるようです。
前者の「手動で新規にテストプロジェクトを作成する」方法は、
で、作成できます。
ただ、後者のメソッドから作成する方法のほうが楽なんじゃないかと思いました。
「メソッドからテストプロジェクトを作成する」方法は、
テストフレームワークは MSTest を選択します。
テストプロジェクトは「新しいテストプロジェクトを」を選択します。
既にテストプロジェクトを作成していればそのプロジェクトを選択することもできます。
とりあえずこれで作成してみます(他の項目は追々勉強していきます)。
するとテストプロジェクトとテストメソッドが作成されます。
一応注意点として、テストを作成するためにはクラスとメソッドが public でなければなりません。
(private なメソッドをテストする方法もあるみたいですが・・・。)
で、作成されたコードを見ればわかりますが、
になるようですね。
MSDN でもこの標準の名前付け規則を採用することをお勧めするとあります。
メニュバーから [テスト] を選択 > [実行] > [すべてのテスト]
で、とりあえずテストが実行でき、テスト結果がテストエクスプローラーに表示されます。
また、エディタ内で右クリック > [テストの実行] でもテストが行えます。
このとき、右クリックした位置で以下のように変わるようです。
テストコードの書き方はまた追々書きます。
Visual Studio Code の 1.9 の更新案内が来ていたのでアップデートしたら、拡張機能が全て動作しなくなりました。
拡張機能の再インストールなども試してみましたが直らず。
Visual Studio Code 自体を一度アンインストールして 1.8.1 を再インストールすれば多分直ると思うのですが、面倒です。
PlantUML やら reStructuredText のライブプレビューの拡張機能とかは動かないとかなり困るのですが、Github の Issue を確認すると報告が上がっていたので、とりあえず待つしかないですね。