2017-01-05 14 views
0

メソッドGetNodesで簡単なクラスライブラリを作成し、選択したディレクトリの内容を調べました。ユニットテスト.Netコアライブラリ - ファイルまたはアセンブリをロードできませんでした

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices; 
using System.Text.RegularExpressions; 
using System.Threading.Tasks; 

public void GetNodes(string directoryPath) 
     { 
      if (directoryPath == null) 
       throw new ArgumentNullException("directoryPath"); 

      //Remove white-space characters from the start and end of path. 
      directoryPath = directoryPath.Trim(); 

      bool isWindows = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Windows); 

(...) 

} 

project.json:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "NETStandard.Library": "1.3.0" 
    }, 

    "frameworks": { 
    "netstandard1.3": { 
     "imports": "dnxcore50" 
    } 
    } 
} 

プロジェクトが正常にビルドされています。

Test Name: DetectException_WhenCorrectExceptionIsThrown 
Test FullName: Task_2_Test.FileManagerTests.DetectException_WhenCorrectExceptionIsThrown 
Test Source: D:\Git\task_2\Task_2\test\Task_2_Test\FileManagerTests.cs : line 25 
Test Outcome: Failed 
Test Duration: 0:00:00,0152049 

Result StackTrace: 
at Task_2.FileManager.GetNodes(String directoryPath) 
    at Task_2_Test.FileManagerTests.DetectException_WhenCorrectExceptionIsThrown() in D:\Git\task_2\Task_2\test\Task_2_Test\FileManagerTests.cs:line 30 
Result Message: 
Test method Task_2_Test.FileManagerTests.DetectException_WhenCorrectExceptionIsThrown threw exception System.IO.FileNotFoundException, but exception System.ArgumentNullException was expected. Exception message: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Nie można odnaleźć określonego pliku.=== Pre-bind state information === 
LOG: DisplayName = System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///D:/Git/task_2/Task_2/test/Task_2_Test/bin/Debug 
LOG: Initial PrivatePath = NULL 
Calling assembly : Task_2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\VISUAL STUDIO EXPRESS 2015\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: System.Runtime.InteropServices.RuntimeInformation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: Attempting download of new URL file:///D:/Git/task_2/Task_2/test/Task_2_Test/bin/Debug/System.Runtime.InteropServices.RuntimeInformation.DLL. 
LOG: Attempting download of new URL file:///D:/Git/task_2/Task_2/test/Task_2_Test/bin/Debug/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.DLL. 
LOG: Attempting download of new URL file:///D:/Git/task_2/Task_2/test/Task_2_Test/bin/Debug/System.Runtime.InteropServices.RuntimeInformation.EXE. 
LOG: Attempting download of new URL file:///D:/Git/task_2/Task_2/test/Task_2_Test/bin/Debug/System.Runtime.InteropServices.RuntimeInformation/System.Runtime.InteropServices.RuntimeInformation.EXE. 

:私は、私はこのエラーを取得するテストを実行するたびに、単純なユニットテストプロジェクト(.NET Frameworkの4.6)

[TestMethod] 
     [ExpectedException(typeof(ArgumentNullException))] 
     public void DetectException_WhenCorrectExceptionIsThrown() 
     { 
      FileManager fm = new FileManager(); 

      fm.GetNodes(@"c:\"); 
     } 

を作成し、いくつかのユニットテストを実行するために、次に

私はこのエラーがSystem.Runtime.InteropServices(私はこのライブラリを使用して現在のOSをチェックして、ディレクトリパスの正しい構文を確認する)と関連していることを知っています。

私はこの機能を辞退したくありませんが、これに対処する方法はわかりません。

Btw。私の夢はVisual Studio Community 2015です。

ご協力いただきありがとうございます。

+0

VS2017 RCを使ってみてください。これは、最新のSDKとIDE機能を使用する唯一の方法です。 project.jsonについては忘れてください。 –

+0

あなたのクラスライブラリは 'System.Runtime.InteropServices.RuntimeInformation'に依存してはいけませんか? –

+0

VS2017 RCをインストールしましたが、これはうまくいきました。私は最後のIDEにいくつかの完全性の問題があったと思う。(インストールの修復、パッケージの不足など) – David762

答えて

0

にまわりで私の作品を発表し、あまりにもvs2015更新3を介してのxUnitを追加することで問題がありました。 RuntimeFrameworkVersionのように、NetStandardImplitPackageVersion

関連する問題