@Stuart の回答 (正しい) に加えて、目的のシナリオ (Mac OS および Windows でテスト可能な PCL アセンブリ) を達成できることがわかった 2 つ目の回避策を投稿したいと思います。
この回避策は、ワイルドカード インクルードのサポートを導入した Xamarin Studio 4.0.5 (またはそれ以降) に依存しています。
具体的には、Windows でコンパイルする場合、PCL をコンパイルし、テスト アセンブリからプロジェクト参照を追加します。Mac OS では、「PCL」もコンパイルします (現在、真の PCL サポートはありません) が、テスト アセンブリからはそのままにしておきます。代わりに、PCL プロジェクトのすべてのコードをワイルドカードでテスト アセンブリに含めて、OS X のテスト アセンブリにテスト + コードを含めます。
これには、いくつかの MSBuild マジックが必要です (Windows と OS X バージョンの間で MvvmCross 参照を切り替えるために使用される同様のトリック)。この .targets ファイルをプロジェクトの先頭に含めます。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<MvvmCrossPlatform>VS2012</MvvmCrossPlatform>
<PclSupport>true</PclSupport>
</PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<MvvmCrossPlatform>XS-iOS-Mac</MvvmCrossPlatform>
<PclSupport>false</PclSupport>
</PropertyGroup>
</Project>
次に、単体テスト .csproj で:
<ItemGroup Condition=" '$(PclSupport)' == 'false' ">
<Compile Include="..\RowingInMotion.Mobile.Backend\**\**.cs">
<Link>_Inlined\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>
<Choose>
<When Condition=" '$(PclSupport)' == 'true' ">
<ItemGroup>
<ProjectReference Include="..\RowingInMotion.Mobile.Backend\RowingInMotion.Mobile.Backend.csproj">
<Project>{0B448743-182C-4ADC-8E97-7F9E7EF3A03A}</Project>
<Name>RowingInMotion.Mobile.Backend</Name>
</ProjectReference>
</ItemGroup>
</When>
</Choose>
Choose コンストラクトを使用して ProjectReference を条件付きにする必要があることに注意してください。項目グループで Condition を使用するだけでは、Visual Studio と Xamarin Studio がプロジェクト参照をロード/無視することはないようです。また、Xamarin Studio はステートメントを適切に展開しないように見える%(RecursiveDir)...
ため、ファイルは醜いファイル名を保持します (ファイルが _Inlined フォルダーに隠されている限り気にしません)。