テスト方法が決定的ではありません:テストは実行されませんでした。エラー?


172

テストクラスがあり、以下にテストクラスのサンプルテストを投稿しました

namespace AdminPortal.Tests.Controller_Test.Customer
{
    [TestClass]
    public class BusinessUnitControllerTests
    {
        private IBusinessUnitRepository _mockBusinessUnitRepository;
        private BusinessUnitController _controller;

        [TestInitialize]
        public void TestInitialize()
        {
            _mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
            _controller = new BusinessUnitController(_mockBusinessUnitRepository);
        }

        [TestCleanup]
        public void TestCleanup()
        {
            _mockBusinessUnitRepository = null;

            _controller.Dispose();
            _controller = null;

        }

        #region Index Action Tests
        [TestMethod]
        public void Index_Action_Calls_GetAllBusinessUnit()
        {
            _mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());

            _controller.Index();

            _mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
        }
    }
}

プロジェクトを実行すると、次の画面が表示されます ここに画像の説明を入力してください

参照を確認しましたが、テストプロジェクトにはメインプロジェクトへの参照があります。テストが実行されていない、または結論が出ていないことを言っている理由はありますか?

編集1:

ここで投稿を見て、テストの設定のデフォルトのプロセッサアーキテクチャをX64に変更しましたが、それでも機能しません。


3
これは、ReSharperの既知の問題です。ここにいくつかの潜在的な解決策があります:stackoverflow.com/questions/12191352/…
Chris Mantle

3
クリーンとリビルドを行いましたか?VS2010には、アセンブリを更新して再構築した後、アセンブリへの参照が失われるという奇妙な点があったことを覚えています。
マークウォルシュ

@ChrisMantleチェックアウトしてデフォルトのプロセッサアーキテクチャを変更しましたが、それでも機能しません
Cyber​​cop 2013

@MarkWalsh VS2012を使用しています。私はまだあなたが言ったように解決策をクリーンアップして再構築しましたが、それでも機能しません
Cyber​​cop 2013

9
この質問はメタ
gnat

回答:


133

上記のオプションのいずれも機能しない場合に備えて、テストプロジェクトにnugetパッケージがないためにApp.Configのエントリが破損していることに気づき、このエラーのインスタンスを修正しました。


5
ここで同じ問題。R#がエラーをバブルアップ(構成システムの初期化中のエラー)するので、テストが実行されなかった理由は明らかです。
Geoffrey Hudik 2014

5
おかげで、私は誤ってappsettingsを構成の上に配置し、適切な位置に下に移動すると機能します。
IBMer 2014

3
nugetを介してspecflowを追加し、App.configにエントリを挿入しました。それが全体のトラブルを引き起こしました。新しいApp.configを作成し、参照を再度追加したところ、修正されました。情報をありがとう。
Vinee 2014年

この投稿が最初に作成されてからほぼ2年後、これはまだ実行可能な修正のようです(私はVS 2015とReSharper 9.2を使用しています)。
Steven D.

2
ビンゴ!クリス、ありがとう。私の場合、それはの機械加工セクション名のないlog4netセクションでした<configSections>
datps 2017年

47

私にとってはかなりイライラしていましたが、少なくとも私の場合の解決策を見つけました:

TestMethodが非同期の場合、それを無効にすることはできません。Taskを返す必要があります。

それが誰かを助けることを願っています:)


37

私はリシャーパーで同じ問題があり、オプションを変更してこのエラーを修正しました:

Resharper =>オプション=>ツール=>ユニットテスト

「テスト中のシャドウコピーアセンブリ」オプションをオフにする必要がありました。


2
これは、他の多くの修正を見た後、私のためにそれをソートしました。私はVS 2013とR#v8.1を使用しています
Spikeh

10
私のために動作しませんでした、私は/整形wの10 VS2015を使用しています
Nemeas

これにより、NETCoreテストプロジェクトでVS2017およびResharper Ultimate 2017.2.2を使用することができました。
Tasker、2018年

私のために働いた、そして私は今テストのためにビルドをクリアする必要はない。エリアスに感謝します。
PhoenixPan

22

リシャーパーの問題でした。Resharperのオプション->ツール-> MSTESTで、[レガシーランナーを使用]をオフにすると、機能します。


61
[ツール]-> [単体テスト]-> [MsTest]にそのオプションはありません。(Resharper 9.2。)
cederlof

R#2017.2にもそのようなオプションはありません。
-realsonic

私にとってのオプションは、ツール->ユニットテスト-> MsTestで、チェックを外すと役に立ちました。
マルセル

15

私はこの問題を抱えていました、そしてそれはここでこの問題と同じであることがわかりましたこの答えは私にとって問題を解決しました

  1. [スタートアッププロジェクトと実行時の依存関係のみをビルドする]をオフにします(オプション->プロジェクトとソリューション->ビルドと実行)。
  2. 構成マネージャーで、スタートアッププロジェクトとテストプロジェクトの両方で[ビルド]がオンになっていることを確認します。

2回目にこの問題に遭遇したのは、テストが存在するプロジェクトへのファイルパスのアンパサンドが原因でした。ReSharperのテストランナーでは問題なく動作しますが、dotCoverでは動作しません。アンパサンドをファイルパスから削除します。

これはdotCoverの確認済みのバグです。


1
私のために働いた。VS2017 with ReSharper 2017.1.3 :-)
Lars Holdgaard 2018

12

私にとっては、ソリューションをクリーニングして再構築するだけで修正されました。


Gitでブランチを変更すると、(誤って)プロジェクトファイルへの変更を元に戻しました。クラスを右クリックしてテストを実行しようとしたとき(コードウィンドウは開いたまま)、ソリューションの一部ではないため、実行されませんでした。
mortb

12

私にとって、問題はNUnit / ReSharper 設定のXMLファイルの破損でした(予期しない電力不足が原因)。

エラーを特定するには、次のコマンドで Visual Studioを起動しました。

devenv.exe /ReSharper.LogFile C:\temp\resharper.log /ReSharper.LogLevel Verbose

ファイルを調べると、次の例外が明らかになりました。

09:45:31.894 |W| UnitTestLaunch                | System.ApplicationException: Error loading settings file
System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   --- End of inner exception stack trace ---
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   at NUnit.Engine.Services.SettingsService.StartService()
   at NUnit.Engine.Services.ServiceManager.StartServices()
   at NUnit.Engine.TestEngine.Initialize()
   at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0()
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action)

これはないことに注意してくださいテストプロジェクトのapp.configで。

グーグルで迅速周りは犯人として次のファイルを特定しました。

%LOCALAPPDATA%\NUnit\Nunit30Settings.xml

それは存在しましたが、空でした。削除してVisual Studioを再起動することで問題は解決しました。

(Visual Studio Professional 2017 v15.3.5およびReSharper 2017.2.1を使用)。


12

Resharper Ultimate 2017.2でvs 2017 update 3でこの問題に直面しました

再起動またはマシンの再起動は役に立ちません。

次のようにキャッシュをクリアして問題を解決しました。

    Resharper ->options-> Environment ->click the button 'Clear caches'

更新:

テストウィンドウの右上隅に「エラー」ボタン(Resharper 2018で見つかります)があります。

エラーボタンをクリックすると、問題の解決に役立つエラーメッセージが表示されます。

問題の根本を追跡するには、ログモードでVisual Studioを実行します。vs 2017では、次のコマンドを実行します。

      devenv /ReSharper.LogFile C:\temp\log\test_log.txt /ReSharper.LogLevel Verbose

テストを実行します。

ログファイルtest_log.txtを確認し、ファイル内で「エラー」を検索します。

ログファイルは、解決できるエラーを見つけるのに非常に役立ちます。または、ログファイルの問題をResharperのテクニカルサポートチームに送信できます。


7

この問題も修正しました。ただし、このスレッドのソリューションはどれも機能しませんでした。これが私がしたことです...

R#は失敗の理由について詳細を提供していなかったので、組み込みのVS2013テストランナーを試すことにしました。どのテストも実行されなかったまったく同じ動作が発生しました。しかし、出力ウィンドウを見ると、ようやくエラーメッセージが表示されました。

executor 'executor:// mstestadapter / v1'の呼び出し中に例外が発生しました:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

これにより、ソリューションを備えたSOの別のスレッドに移動しました。私を信じて、私は問題が何であったかを決して推測しなかったでしょう。

NuGetパッケージの作成中に、最近AssemblyInfo.csファイルにいくつかの変更を加えました。"en"のアセンブリカルチャ値の指定を含む変更の1つ。

私はこれを変更しました:

[assembly: AssemblyCulture("")] 

これに:

[assembly: AssemblyCulture("en")]`. 

それでおしまい!それがどういうわけか私のユニットテストを壊しました。 しかし、それでも理由はわかりません。しかし、少なくとも物事は再び機能しています。この変更を元に戻した(つまり、カルチャを ""に戻した)後、テストが再び実行され始めました。

それが誰かを助けることを願っています。


1
アセンブリのカルチャを変更し、R#はテストの実行を停止しました。
バレンタインザハレンコ2016

ありがとうございました!出力ウィンドウを確認すると問題が判明しました。クラスはパブリックではありませんでした。
ジョニーフェルドマン2018

7

私の場合、[Test]メソッドはただprivateでした。恥


1
奇妙なことに、ReSharperは私の[Test]メソッドがプライベートであると私に不平を言っただけです。新機能でなければなりません。
ケビンBバーンズ

7

私の問題は、nugetでNUnitのみをインストールしていたことでした。必要なNUnit3TestAdapterもインストールしていません。

Install-Package NUnit3TestAdapter

これは、実際の問題についてほとんど手掛かりを与えないイライラする問題の1つです!
ベン・パワー

6

私の場合、app.configの接続文字列をコピーしているときに私が犯した間違いでした。configSectionsタグの中に入れました!

それを理解するのにしばらくかかりました... VSインテリセンスに感謝します。


私の場合、これは構成ファイルの無効な変更の結果でした
evgenyl

私の問題は、Gitの競合解決の問題が原因で、解決した構成ファイルにヘッドの変更情報が残っています
残ってい

ほぼ同じことが私にも起こりました。冗長なappSettingsセクションに接続文字列を追加し、冗長なappSettingsセクションを削除して、接続文字列を元のappSettingsセクションに移動しました。
Sirar Salih、

破損したapp.configに関する答えは最初のものと同じです stackoverflow.com/a/21386881/52277
マイケルFreidgeim

5

同様の問題がありました。VS 2010、c#CLR 2 Nunit 2.5.7、ビルドする> VSのクリーンソリューションがこの問題の解決に役立ちました


5

私の場合、を返す非同期テストメソッドを作成しましたvoid。問題Taskvoid解決する代わりにの復帰。


4

最近DLL依存関係を追加しましたか?... 私のような

私は同じ問題に遭遇しただけで、テスト出力ウィンドウや他の実用的な場所で手掛かりを取得しないことは非常に苛立たしいことでした。

原因は非常に愚かでした:依存関係の前の日をサブプロジェクトの追加の外部DLLに追加したところ、変更後にメインプロジェクトアプリが実際に正しくビルドおよび実行されました。しかし、私の単体テストはメインアプリの姉妹プロジェクトにあるため、DLLが呼び出されたこの変更されたサブプロジェクトに依存しすぎていました...まだ、テストプロジェクトのランタイムの場所はメインアプリの場所ではありません!そのため、不足しているDLLをテストランタイムディレクトリにコピーするようにビルドを変更すると、問題が修正されました。


4

私はVS2013、ReSharper 9.1、ReSharperおよびMoqのMSpec拡張を使用しています。同じ「決定的でない」エラーが発生しました。

Moqのモックの1つは初期化されておらず、宣言されているだけでした。すべてが初期化され、すべてのテストが再度実行されました。


4

私の場合、UnitTestsプロジェクトのビルドが単にオフにされた 'Release'モードが原因で、このエラーが発生しました。「デバッグ」モードに戻すと修正されました。

ReSharperがUnitTestsライブラリをまったく見つけられない場合、何も言えないことは本当に驚くべきことです。真剣に、それは残念です;)

それが誰かを助けることを願って


4

私の場合、すべて新しいプロジェクトを追加した後、ソリューション内の一部のテストプロジェクト内のテストが実行されなくなりました。VS 2017とReSharper 2017.1.2の併用はこちら。

まず、問題がReSharper関連であると想定して時間を無駄にしていないことを確認してください。ユニットテストエクスプローラーなどのユニットテスト機能を使用している場合、ReSharperに問題があると簡単に想定できます。Visual Studioのテストエクスプローラーを[ テスト ]メニューから開き、[ すべて実行 ]を試します。これを行うことの追加の利点は、出力ウィンドウに正しい方向を示すエラーメッセージが表示されることです。同じ一連のテストに気づいた場合が実行されていない場合は、問題がReSharperではなくVisual Studioにあると想定しても安全です。

私は次のいずれかを削除して再追加することになったアクティブソリューションプラットフォームを任意のCPUをして、構成マネージャ。そうすることで、変更を保存してソリューションを再び開いた後、すべてのテストが再び実行を開始しました。

新しいプロジェクトを追加したときに、ソリューションファイルに予期しない構成エントリがあったと思います。プラットフォームの1つを再作成することで、それは自動的に修正されました。比較してみましたが、問題の原因となった変更点を特定することが困難でした。


私の場合、<AppSettings>ではなくapp.config <AppConfig>にばかげたタイプミスがありました。私はReSharperが大好きですが、彼らは本当にエラーメッセージに取り組む必要があります!
MichaelMilom 2018年

4

の私のテストプロジェクト.NET Core 2.0でこの問題が発生している人のためにVisual Studio 2017 Community (v15.3 3)。私もこのバグを使用していましたJetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346- 投稿したバグがあります。

JetBrainsは、新しいテストプロジェクトを最初から作成して再現することを勧めました。それを行ってテストが正常に機能するようになると、問題の原因がわかりました。

  • これを*.csprojファイルから削除します。
  • Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}

私がそれをしたとき-テストはうまく働き始めました。


ドミトリー、ありがとう、助けてくれた。このサービスは何ですか?
Vladimir Melekh

@VladimirMelekhは、このgithub.com/Microsoft/vstest/issues/472を確認してください
Dmitry Pavlov

3

私はVS2010、NUnit 2.6.3(内部的にReSharperは2.6.2を使用していると言いますが)、ReSharper 7.7.1およびNCrunch 2.5.0.12を使用しており、同じ「...テストは結論が出ていない...」という問題に直面していましたNUnitで、しかしNCrunchはすべてがうまくいったと言いました。今日のほとんどの期間、NUnitとNCrunchは同期していて、どのテストが適切で、どのテストがリファクタリングを必要としているかに同意していましたが、それでもまだ理解できない問題が発生しました。パス)、その後、すべてが機能していると判断し、NUnitが続行しても、同じメッセージ「..test is inconclusive ...」を除いて、すべてのテストについてNUnitが不平を言い始めました。 「決定的でない」としてそれを示すために)。

私は上記の提案のいくつかを試しても役に立たず、ついにVS2010を閉じてソリューションを再開しました。ほら、これで私のテストはすべて再び幸せになり、NCrunchとNUnitは再び同じ結果を報告しています。残念ながら、何が変更されて同期が取れなくなったのかはわかりませんが、VS2010を閉じて再度開くと修正されたようです。

たぶん、他の誰かがこれに遭遇し、この単純な(実際の修正が何であるかわからないために最終的に満足できない場合)ソリューションを使用することができます。


3

私も同じ問題を抱えていました。犯人は私のプロジェクトのビルド設定と互換性のない外部参照でした。解決するには、プロジェクト->プロパティ->ビルド->プラットフォームターゲット-> Any CPUからx86への変更を右クリックしました。

私が使用していた特定の* .dllはSystem.Data.SQLiteでした。その特定の* .dllは、32ビット操作用にハードコーディングされています。「すべてのCPU」設定が64ビットとしてロードしようとしました。


プラットフォームターゲットの不一致は、同じソリューション内の他のプロジェクトへの参照でも発生する可能性があります。
Chaquotay 2016年

3

私の解決策:

NUnit 3.2.0にはResharperに関するいくつかの問題があります-2.6.4にダウングレードします:

update-package nunit -version 2.6.4


3

App.Configファイルが見つからない(破損していない)ために発生します。新規追加(追加->新しい項目...->アプリケーション構成ファイル)で修正されました。


3

同じ問題がありました。NUnit3.5から2.6.4にダウングレードすることで解決されたため、NUnit 3.5とResharper 9.2の間の互換バージョンに関連していました。それは私のために働いた。幸運を。


3.6.1に対してコンパイルされたテストアセンブリがあり、私のメインのテストアセンブリは3.7.1に対してコンパイルされました。3.6.1にダウングレードし、現在はすべて良好です。
トム・

ReSharper 2017.3.2とNUnit 3.11がそうでした。nunit github.com/nunit/nunit/issues/3086#issuecomment-466988760
Puterdo

3

を使用している場合xUnitxunit.running.visualstudioパッケージのインストールに関する問題を解決しました。(現在xUnit 2.3.1およびを使用VS17 Enterprise 15.3.5


3

NUnitフレームワークを使用してテストを実行するのと同じ問題が発生していました。"結論:テストが実行されていません" Visual Studio 2017 15.5.6

ReSharper Ultimate 2017.3.3 Build 111.0.20180302.65130

解決しようMicrosoft.NET.Test.Sdkにプロジェクトの依存関係を追加する


私の場合は役に立ちませんでした
Dmitry Avtonomov 2018

2

テストの実行に急いでいる人のために、私はVS 2017テストエクスプローラーを使用してテストを実行する必要がありました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


2

このエラーはVisual Studio 2017および再シャープバージョン2018.2.3で発生しましたが、修正はVisual Studio 2019バージョンに適用されます。

Resharperでテストを機能させるための修正は、執筆時点で単にResharperの最新バージョン(2019.2.1)に更新することでした。


1

私はまったく同じ問題を抱えていて、何の助けにもなりませんでした。

最終的に、ユニットプロジェクトとユニットテストプロジェクトの名前空間に不一致があることがわかりました。

私のユニットプロジェクトの名前空間はunit.projectで、テストプロジェクトの名前はunit.project.testsでしたが、テストのデフォルトの名前空間はユニットと同じで、どちらもunit.projectでした。

名前空間を異なるように更新したら(プロジェクトごとに1つの名前空間)、すべてが機能しました!


ええ、私は同じ問題がありました。アクセスを容易にするために、テストプロジェクトとターゲットプロジェクトを同一にするというアイデアかもしれませんが、テストランナーとねじ込み、OPからこの問題が発生します。
atconway 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.