2016-09-16 10 views
1

生産アセンブリと単体テストアセンブリでは、最も簡単なソリューション設定が可能です。.NETコアNUnitのテストプロジェクトの参照が機能するための本番クラスライブラリへの参照

Common.sln 
global.json 
-- src 
---- Common 
------ project.json 
-- test 
---- UnitTests 
------ project.json 

global.json

{ 
    "projects: [ "src", "test" ] 
} 

Common\project.json

{ 
    "name": "<redacted>", 
    "version": "2.0.0-*", 
    "description": "<redacted>", 
    "copyright": "© 2016 <redacted>", 
    "title": "<redacted>", 
    "authors": [ "<redacted>" ], 
    "language": "en-US", 
    "buildOptions": { 
    "platform": "anycpu", 
    "xmlDoc": true 
    }, 
    "dependencies": { 
    "NETStandard.Library": "1.6.0" 
    }, 
    "frameworks": { 
    "netstandard1.6": { 
     "imports": "dnxcore50" 
    } 
    } 
} 

UnitTests\project.json

{ 
    "version": "0.0.0-*", 
    "testRunner": "nunit", 
    "dependencies": { 
    "Common": { 
     "target": "project" 
    }, 
    "NUnit": "3.4.1", 
    "dotnet-test-nunit": "3.4.0-beta-2" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "netcoreapp1.0", 
     "portable-net45+win8" 
     ], 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.1-*", 
      "type": "platform" 
     } 
     } 
    } 
    } 
} 

まず、ここでは関係構成がありますコンパイルすると、エラーリストに次のエラーが表示されます。

Error NU1002 The dependency Common does not support framework .NETCoreApp,Version=v1.0. UnitTests <redacted>\UnitTests\project.json 5 
Error   The given key was not present in the dictionary. UnitTests  1 

ここでは何が起こっていますか?私はこれらのプロジェクトを試して設定するために見つけることができるすべてのチュートリアルに従ってきましたが、どれもうまくいきません。チュートリアルが作成されて以来、おそらく.NET Coreの土地に変化がありましたか? UnitTestsプロジェクトで私のCommonプロジェクトを認識するためには、何を変更する必要がありますか?

他の二つの小さな懸念:

  1. 私は、Windows 7 SP1を実行していますよ。それはportable-net45+win8インポートに問題がありますか?
  2. Microsoft.NETCore.App:1.0.1の新しいバージョンがあります。もともと、project.jsonはバージョン1.0.0を参照していたので、私はそれを変更しました。しかし、ソリューションエクスプローラでは、私はまだ1.0.0が表示されます。

参考文献:

http://www.alteridem.net/2016/06/18/nunit-3-testing-net-core-rc2/

+0

Visual Studioを使用している。ここ

project.jsonの最終版ですか?私はSLNファイルに基づいてはいを推測しています。また、global.jsonにはそれぞれのプロジェクトが含まれていますか?あなたの答えを編集し、global.jsonを追加できますか? –

+0

Yep、VS 2015 Update 3、完全にパッチが当てられました。 – NathanAldenSr

+0

私はそれに応じて質問を更新しました。 – NathanAldenSr

答えて

0

それは私が見ていたほぼすべては、単に問題をツーリングしていることが判明しました。私はマイクロソフトがすぐにこの問題に取り組むことを望むエラーリストに古くなったエラーメッセージが表示されるのは非常に混乱します。コマンドラインからdotnet builddotnet testを実行するとすべて正常に動作します。

netstandard1.5を対象としています。これは、私が集めることができるところから、parity with .NET Framework 4.6.2を持っています。これは私がこの作業の前に目標としていたものです。

Common\project.json

{ 
    "name": "<redacted>", 
    "version": "2.0.0-*", 
    "description": "<redacted>", 
    "copyright": "<redacted>", 
    "title": "<redacted>", 
    "authors": [ "<redacted>" ], 
    "language": "en-US", 
    "packOptions": { 
    "tags": [ 
     "GM", 
     "UAS", 
     "Common" 
    ], 
    "iconUrl": "<redacted>", 
    "repository": { 
     "type": "git", 
     "url": "<redacted>" 
    } 
    }, 
    "buildOptions": { 
    "xmlDoc": true, 
    "compile": { 
     "include": [ 
     "GlobalAssemblyInfo.cs" 
     ] 
    } 
    }, 
    "dependencies": { 
    "NETStandard.Library": "1.6.0" 
    }, 
    "frameworks": { 
    "netstandard1.5": {} 
    } 
} 

UnitTests\project.json

{ 
    "version": "0.0.0", 
    "testRunner": "nunit", 
    "dependencies": { 
    "NUnit": "3.4.0", 
    "dotnet-test-nunit": "3.4.0-beta-2", 
    "Common": { 
     "target": "project" 
    } 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": "portable-net45+win8", 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "version": "1.0.0-*", 
      "type": "platform" 
     } 
     } 
    } 
    } 
} 
関連する問題