microsoft / vstest

Visual Studio Test Platform is the runner and engine that powers test explorer and vstest.console.
MIT License
898 stars 323 forks source link

`dotnet vstest` fails for net46 #1302

Closed joemey closed 6 years ago

joemey commented 6 years ago

Description

dotnet vstest /Framework:.NETFramework,Version=v4.6 bin\debug\net46\test.dll won't find any tests in the assembly.

looking into the testhost diagnostic file shows that testhost.x86.exe is trying to load the assemblies Microsoft.TestPlatform.TestHostRuntimeProvider, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a and Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a which failes with an BadImageFormatException because these assemblies are build for x64 instead of msil

switching to x64 with dotnet vstest /Framework:.NETFramework,Version=v4.6 /Platform:x64 bin\debug\net46\test.dll won't work either and the testhost diagnostic file shows plenty of

System.IO.FileNotFoundException: Die Datei oder Assembly "System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

errors.

I think it's unfortunate that dotnet vstest [...] silently disacards any testhost(.x86).exe errors while running and simply claims that there were no tests to run

Steps to reproduce

Expected behavior

λ  dotnet vstest .\bin\Debug\netcoreapp2.0\test.dll
Microsoft (R) Testausführungs-Befehlszeilentool Version 15.3.0-preview-20170628-02
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

Die Testausführung wird gestartet, bitte warten...
[xUnit.net 00:00:00.3316838]   Discovering: test
[xUnit.net 00:00:00.3937023]   Discovered:  test
[xUnit.net 00:00:00.4238814]   Starting:    test
[xUnit.net 00:00:00.5384505]   Finished:    test

Tests gesamt: 1. Bestanden: 1. Fehler: 0. Übersprungen: 0.
Der Testlauf war erfolgreich.
Testausführungszeit: 1,1484 Sekunden

Actual behavior

λ  dotnet vstest /Framework:.NETFramework,Version=v4.6 .\bin\Debug\net46\test.dll
Microsoft (R) Testausführungs-Befehlszeilentool Version 15.3.0-preview-20170628-02
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

Die Testausführung wird gestartet, bitte warten...
In C:\temp\test\.\bin\Debug\net46\test.dll ist kein Test verfügbar. Stellen Sie sicher, dass Testdiscoverer und -executor registriert und die Versionseinstellungen für Plattform und Framework richtig sind, und versuchen Sie es anschließend noch mal.

Diagnostic logs

The attached logs have been created with fusion logs enabled

logs.zip

Environment

λ  dotnet --info
.NET-Befehlszeilentools (2.0.2)

Product Information:
 Version:            2.0.2
 Commit SHA-1 hash:  a04b4bf512

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.15063
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.0.2\

Microsoft .NET Core Shared Framework Host

  Version  : 2.0.0
  Build    : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d
smadala commented 6 years ago

@joemey

TpTrace Verbose: 0 : 8252, 7, 2017/11/17, 13:36:15.369, 51341827866, testhost.x86.exe, TestPluginCache: Discoverers are ''.

Above line indicates that no adapter passed to host process, Can you specify /TestAdapterPath:\path\to\xunit.runner.visualstudio\2.3.1\build\_common argument.? Or Use latest dotnet sdk (Example: 2.1.0-preview1-007372) which has fix for https://github.com/Microsoft/vstest/issues/251.

Please reactive issue, If provide solution didn't work.

joemey commented 6 years ago

specifing an /TestAdapterPath:\path\to\xunit.runner.visualstudio\2.3.1\build\_common or using sdk 2.2.0-preview1-007558 works. Thanks!