プロジェクトで単体テストを書き始めようとしています。最初にcreateTestを作成して試してみました。このテストに合格し、他のテストを書き始めました。
これで、すべてのテストで「テストが実行されません」と表示されます。これは、すべてのテストを一度に実行しようとしたときと、単一のテストを実行したときの両方で発生します。
https://github.com/Requinard/OperationOctopus/tree/UnitTest
これまでに見つけたのは、NUnitを使用している人々だけです。デフォルトのMicrosoftテストフレームワークを使用しており、resharperがテストを実行しています。
[TestMethod]
public void CreateTest()
{
Init.Initialize();
// set up
UserModel user = new UserModel();
user.Address = "Testing Street 1";
user.Email = "[email protected]";
user.Level = 2;
user.Password = "test";
user.RfiDnumber = "00d0wad0aw";
user.Telephonenumber = "0638212327";
user.Username = "testcaseuser";
Assert.IsTrue(user.Create(), "Cannot write user to database");
test_user = user;
}
[TestMethod]
public void ReadTest()
{
Init.Initialize();
// set up
UserModel user = getTestUser();
Assert.AreEqual(user.Email, test_user.Email, "Reading returned an unexpected result");
}
[TestMethod]
public void AlterTest()
{
Init.Initialize();
UserModel user = getTestUser();
user.Email = "[email protected]";
Assert.IsTrue(user.Update(), "Failure during updating");
user.Read();
Assert.AreNotEqual(user.Email, test_user.Email);
}
[TestMethod]
public void DestroyTest()
{
Init.Initialize();
UserModel user = getTestUser();
Assert.IsTrue(user.Destroy(), "Could not destroy user");
}
上記のテストでは、「テストは実行されません」と再シャープ化されます。
ノートパソコンでテストを実行してみました。彼らはコードに変更を加えることなく機能し、テストは即座に完了しました。これは私がどこかで欠陥のある設定を扱っていると思います。
私がやっていたことをしていないことを確認し、デバッグモードでのみビルドするように設定されたテストプロジェクトでソリューションがリリースモードであることを完全に忘れてください;-)
ReSharper 2017.3.1にはバグがあり、2017.3.2で修正されました: https://blog.jetbrains.com/dotnet/2018/02/01/resharper-ultimate-2017-3-2-バグ修正/
ReSharper
> Help
> Check for Updates
を使用して更新できます。
ログを有効にする で同じエラーが発生したかどうかを確認できます。これは私が持っていたものです:
--- EXCEPTION #2/2 [LoggerException]
Message = “Passed version string '2.1.101' doesn't look to be a valid .net core sdk version”
そして最終的に:
|W| UnitTestLaunch | System.NullReferenceException: Object reference not set to an instance of an object.
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.NUnitServiceProvider.GetRunStrategy(IUnitTestElement element)
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.Elements.NUnitElementBase.GetRunStrategy(IHostProvider hostProvider)
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.CollectProjectsToBuild()
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.Run(CancellationToken token)
at JetBrains.ReSharper.UnitTestFramework.Launch.UnitTestLaunch.RunStage(Object stageObject)
私のプロジェクトはNET471を使用しており、Visual Studio 15.6.27428.2005でReSharper 2017.3.1を実行しています
これも私に起こり、ここに理由が見つかりました: http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit =
この修正は実際には厳しく、私がしたことは構成を変更することです:VS2015-> Resharper->オプション->ユニットテスト->デフォルトのプラットフォームアーキテクチャ-テストを32ビットプロセスで強制的に実行します
これがあなたを助けることを願っています
複数のブランチを持つプロジェクトで作業し、Visual Studioをシャットダウンせずにブランチを切り替えるため、私は定期的にこの問題に遭遇します。これにより、ReSharperが時々混乱し、一部のプロジェクトではNUnitオプションがなくなります。
Visual Studio Community 2017 with ReSharper 2018.2で私が最初に試みることは、NUnitテストランナーが利用できないプロジェクトをアンロードすることです。時々それが唯一必要なステップです。
次に、VSの再起動が必要なReSharper-> Options-> General-> 'Clear caches'を使用します。
次に、問題のあるプロジェクトを再度アンロードして再ロードします。
これで問題が解決します。