単体テストをデバッグまたはステップスルーできませんでした。
これが私のサンプルテストコードです...
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using DomainModel.Entities;
using DomainModel.Abstract;
using WebUI.Controllers;
namespace Tests
{
[TestClass]
public class PeopleControllerTests
{
static IPeopleRepository MockPeopleRepository(params Person[] people)
{
var mockPeopleRepos = new Moq.Mock<IPeopleRepository>();
mockPeopleRepos.Setup(x => x.People).Returns(people.AsQueryable());
return mockPeopleRepos.Object;
}
[TestMethod]
public void Count_Of_People()
{
IPeopleRepository repository = MockPeopleRepository(
new Person { Age = 31, Gender = "Male", Name = "Tom" },
new Person { Age = 25, Gender = "Female", Name = "Sally" },
new Person { Age = 18, Gender = "Female", Name = "John" }
);
PeopleController controller = new PeopleController(repository);
var people = controller.List().ViewData.Model;
var peoplelist = people as IList<Person>;
Assert.AreEqual(3, peoplelist.Count);
}
}
}
Microsoft.VisualStudio.TestTools.UnitTestingを使用する場合、VS 2010のメインメニューの[テスト]に移動し、[デバッグ]-> [現在のコンテキストでテスト]サブメニューをクリックします。
テストコードを右クリックして[テストの実行]を選択すると、mode = debugの場合でもデバッガーが起動しません。
はい、できます、ありがとう:)
実際にそれらを破るには、デバッグモードでユニットテストを実行する必要があります。
たぶん、テストをデバッグしてブレークポイントを設定することは、ある種の単体テストでは機能しますが、デバッグする場合は機能しません。ウェブサービス。
Webサービスをデバッグするには(ユニットテスト内で中断)、次のコードを挿入する必要があります。
System.Diagnostics.Debugger.Break();
これにより、アプリケーションの動作が停止したことを示すポップアップが表示され、デバッグを選択できます。
詳細: http://msdn.Microsoft.com/en-us/library/ms243172.aspx#DebuggingOnCassini
別の解決策...
デバッガーを実行して接続する必要があります
この行をテストで実行された最初の行に設定します(おそらくテストクラスコンストラクターで)
System.Diagnostics.Debugger.Launch();
その後、デバッグウィンドウが開いたときに、ビジュアルstdioを選択しました
nunit
を実行している場合、それはとても簡単でした:
nunit
を実行し、目的のアセンブリを開きます。nunit
のプロセスを選択nunit
に戻ってテストを実行します1つのオプションは、 TestDriven.net をインストールすることです。これにより、主要な単体テスト.netフレームワーク(nunit、xunit、VSツールなど)で単体テストを簡単に実行できます。インストールしたら、関数を右クリックして、[テスト]-> [デバッガー]を選択できます。