I have some .NET Core libraries that target net45 and netstandard1.6 , and I want to test them. I did dotnet new -t xunittest and created a new test project targeting netcoreapp1.0 so that it only tests .NET Core code.
I also tried compiling it to target net45 as net45 , but then I got a series of errors when detecting tests. My questions
Is there a way to test the code intended for both (possibly later) frameworks with one test project, or should I create a test project for each of them that I am aiming at?
Edit : here are my project.json and the messages I get:
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable" }, "dependencies": { "xunit": "2.1.0" }, "testRunner": "xunit", "frameworks": { "net45": { "frameworkAssemblies": { "System.Runtime": "4.0.0.0" } }, "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" }, "System.Runtime.Serialization.Primitives": "4.1.1", "dotnet-test-xunit": "2.2.0-preview2-build1029" }, "imports": [ "dotnet5.4", "portable-net451+win8" ] } } }
these are the errors that I get after compiling the project:
dotnet-test Error: 0 : [ReportingChannel]: Waiting for message failed System.IO.IOException: Unable to read data om the transport connection: An established connection was aborted by the software in your host machine. ---> stem.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.IO.Stream.ReadByte() at System.IO.BinaryReader.ReadByte() at System.IO.BinaryReader.Read7BitEncodedInt() at System.IO.BinaryReader.ReadString() at Microsoft.DotNet.Tools.Test.ReportingChannel.ReadMessages() >dotnet-test Error: 0 : Unhandled Exception: System.IO.IOException: Unable to read data from the transport nnection: An established connection was aborted by the software in your host machine. ---> stem.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.IO.Stream.ReadByte() at System.IO.BinaryReader.ReadByte() at System.IO.BinaryReader.Read7BitEncodedInt() at System.IO.BinaryReader.ReadString() at Microsoft.DotNet.Tools.Test.ReportingChannel.ReadMessages() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object ate) [ReportingChannel]: Error sending System.IO.IOException: Unable to write data to the transport connection: Cannot cess a disposed object. Object name: 'System.Net.Sockets.Socket'.. ---> System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, cketError& errorCode) at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.IO.BinaryWriter.Write7BitEncodedInt(Int32 value) at System.IO.BinaryWriter.Write(String value) at Microsoft.DotNet.Tools.Test.ReportingChannel.Send(Message message) dotnet-test Error: 0 : System.IO.IOException: Unable to write data to the transport connection: Cannot access a sposed object. Object name: 'System.Net.Sockets.Socket'.. ---> System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, cketError& errorCode) at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.IO.BinaryWriter.Write7BitEncodedInt(Int32 value) at System.IO.BinaryWriter.Write(String value) at Microsoft.DotNet.Tools.Test.ReportingChannel.Send(Message message) at Microsoft.DotNet.Tools.Test.ReportingChannel.SendError(String error) at Microsoft.DotNet.Tools.Test.ReportingChannel.SendError(Exception ex) at Microsoft.DotNet.Tools.Test.DesignTimeRunner.HandleDesignTimeMessages(ProjectContext projectContext, tnetTestParams dotnetTestParams) at Microsoft.DotNet.Tools.Test.DesignTimeRunner.DoRunTests(ProjectContext projectContext, DotnetTestParams tnetTestParams) at Microsoft.DotNet.Tools.Test.BaseDotnetTestRunner.RunTests(ProjectContext projectContext, DotnetTestParams tnetTestParams, BuildWorkspace workspace) at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args)
and ends with this line
========== Discover test finished: 0 found (0:00:03.0417342) ==========
although I know that I have one test (at least for now).
however, if I remove the net 45 links, everything works like a charm, here is my project.json job:
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable" }, "dependencies": { "System.Runtime.Serialization.Primitives": "4.1.1", "xunit": "2.1.0", "dotnet-test-xunit": "2.2.0-preview2-build1029" }, "testRunner": "xunit", "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } }, "imports": [ "dotnet5.4", "portable-net451+win8" ] } } }