web-dev-qa-db-ja.com

Resharperユニットテストが実行されていない

プロジェクトで単体テストを書き始めようとしています。最初に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");
    }

上記のテストでは、「テストは実行されません」と再シャープ化されます。

ノートパソコンでテストを実行してみました。彼らはコードに変更を加えることなく機能し、テストは即座に完了しました。これは私がどこかで欠陥のある設定を扱っていると思います。

23
Samyn

システム全体の再起動は少し時期尚早だったと思います。これが発生すると、Resharperを再起動するだけで済みます。

私は通常、Visual Studioのコマンドウィンドウからこれを行います。これらのコマンドを次々に入力するだけです。

Resharper_Suspend
Resharper_Resume

通常、これで問題が解決し、ソリューションを再度開く必要はありません。

これが失敗した場合は、リシャーパーキャッシュをクリアできます。方法は、 ここ で確認できます。

ここにそれを行う方法があります VSメニューから

43
BastanteCaro

私がやっていたことをしていないことを確認し、デバッグモードでのみビルドするように設定されたテストプロジェクトでソリューションがリリースモードであることを完全に忘れてください;-)

6
Ted

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を実行しています

5

これも私に起こり、ここに理由が見つかりました: http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit =

この修正は実際には厳しく、私がしたことは構成を変更することです:VS2015-> Resharper->オプション->ユニットテスト->デフォルトのプラットフォームアーキテクチャ-テストを32ビットプロセスで強制的に実行します

これがあなたを助けることを願っています

4
daviddv

今日私に起こり、上記の提案(キャッシュのクリア、VSの再起動、resharperのサスペンド/レジューム)はどれもうまくいきませんでした。

ただし、[エラー]の[ユニットテストセッション]タブで、TypeLoadExceptionが発生して問題を特定できることがわかりました。 enter image description here

1
Dr. ABT

複数のブランチを持つプロジェクトで作業し、Visual Studioをシャットダウンせずにブランチを切り替えるため、私は定期的にこの問題に遭遇します。これにより、ReSharperが時々混乱し、一部のプロジェクトではNUnitオプションがなくなります。

Visual Studio Community 2017 with ReSharper 2018.2で私が最初に試みることは、NUnitテストランナーが利用できないプロジェクトをアンロードすることです。時々それが唯一必要なステップです。

次に、VSの再起動が必要なReSharper-> Options-> General-> 'Clear caches'を使用します。

次に、問題のあるプロジェクトを再度アンロードして再ロードします。

これで問題が解決します。

0
Naylor