ブログ

テストエクスプローラーにasyncメソッドが出てこない…

2015年10月6日 09:00 | ブログ | | 180 views

このエントリーをはてなブックマークに追加
はてなブックマーク - テストエクスプローラーにasyncメソッドが出てこない…
reddit にシェア
Pocket
LINEで送る

そういや、いつの間にか無償版でも単体テストプロジェクトって作成できるようになったんですね。
(Visual Studio 2013 Expressからかな?)
以前はProfessionalからしか使えなかったと記憶しておりますが。

ですが、流石に無償版なので、カバレッジ測定はできません。
こういう単体テスト用ツール使うときはカバレッジ測定が主な目的だと思っているので、無償版では使いもんにならんとは思っております。
あとは大体は画面作って動かして確認するから使ってこなかったのですが…

ちょっとHttpのライブラリ的なことを作っていまして、後で画面から呼び出して確認しますが、単体テストプロジェクトつーのを使ってみようと思い立ったのです。
.Net Framwork 4.5からHttpClientが使いやすくなってawait/asyncで非同期処理が簡単になって。
いいことづくめだなーと思っていたのですが-
[cpp]
[TestClass]
public class HttpUtilityTest
{
[TestMethod]
public async void GetTest001()
{
string ret = await HttpUtility.Get("http://www.sys-cube.co.jp");
}
}
[/cpp]
この「GetTest001」がテストエクスプローラーに現れない!
すべてを実行を押しても、リビルドしても、Visual Studio 2015 RCを再起動しても!
困ったときはGoogle先生に聞く-
どうやら戻り値をTaskにすればよいらしい?
[cpp]
[TestClass]
public class HttpUtilityTest
{
[TestMethod]
public async Task GetTest001()
{
string ret = await HttpUtility.Get("http://www.sys-cube.co.jp");
}
}
[/cpp]
リビルドすると-
キタ━━━━(゚∀゚)━━━━!!
テストエクスプローラーに「GetTest001」が現れました!

いやあ、なんという罠…
お仕事で使う以外では単体テストプロジェクトはもういいかなって思いました。(小並感
(async voidがおかしいって話はおいといてください。)