Reputation: 523
I have a problem where my xUnit tests in my ASP.Net Core 1.0 application are not discovered when building on Visual Studio Team Services.
The test project is being built successfully, but no test results are given. I find the following messages regarding the Visual Studio Test step in the log:
******************************************************************************
Starting task: Test Assemblies **\*test*.dll;-:**\xunit.runner.visualstudio.testadapter.dll
******************************************************************************
Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\VSTest\1.0.29\VSTest.ps1
Working folder: C:\a\1
Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe "C:\a\1\s\artifacts\bin\project.test\Debug\dnx451\project.test.dll" /EnableCodeCoverage /InIsolation /logger:trx
Microsoft (R) Test Execution Command Line Tool Version 14.0.24720.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
Warning: No test is available in C:\a\1\s\artifacts\bin\project.test\Debug\dnx451\project.test.dll. Make sure that installed test discoverers & executors, platform & framework version settings are appropriate and try again.
Attachments:
C:\a\1\TestResults\0ad44b11-4dd4-41ba-a0bf-66d9cd487a3c\buildguest_TASKAGENT5-0007 2016-03-01 07_33_04.coverage
Information: Additionally, you can try specifying '/UseVsixExtensions' command if the test discoverer & executor is installed on the machine as vsix extensions and your installation supports vsix extensions. Example: vstest.console.exe myTests.dll /UseVsixExtensions:true
No results found to publish.
The tests are written like this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Xunit;
namespace project.tests
{
public class ProjectTests
{
[Fact]
public void PassingTest()
{
Assert.Equal(4, Add(2, 2));
}
[Fact]
public void FailingTest()
{
Assert.Equal(5, Add(2, 2));
}
int Add(int x, int y)
{
return x + y;
}
}
}
The tests run just fine locally, but not on Visual Studio Team Services.
For reference, this is my project.json
{
"authors": [ "Tom Reiertsen" ],
"commands": {
"test": "xunit.runner.dnx"
},
"dependencies": {
"project": "1.0.0-rc1-update1",
"Microsoft.AspNet.Hosting": "1.0.0-rc1-final",
"Microsoft.AspNet.TestHost": "1.0.0-rc1-final",
"Microsoft.AspNet.WebApi.Client": "5.2.3",
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"xunit": "2.1.0",
"xunit.runner.dnx": "2.1.0-rc1-build204",
"xunit.runner.visualstudio": "2.1.0"
},
"description": "project.test Class Library",
"frameworks": {
"dnx451": { }
},
"licenseUrl": "",
"projectUrl": "",
"tags": [ "" ],
"version": "1.0.0-rc1-update1"
}
Upvotes: 3
Views: 2229
Reputation: 117
Someone posted this, i try this and it works http://blogs.perficient.com/microsoft/2016/08/unit-test-with-net-core-and-vsts/
and the final result in visual studio team service
Upvotes: 0
Reputation: 4647
The tests are not getting discovered since the xunit test adapter for vstest was not found. Here is what you can do
vstest should not be able to detect your xunit test adapter and then discover and execute the xunit tests
Upvotes: 0
Reputation: 29976
Enter "$(Build.SourcesDirectory)\SolutionFolderName\packages" in "Advanced Execution Options\Path to Custom Test Adapters" to set the test adapter to xUnit. Refer to this link for details: xUnit or NUnit with Visual Studio Online Build
Update:
I just create a sample app to test this and get the same issue with you. However, if I copy the xunit assembly files into "dnx451" folder together with test.dll, the test will be completed successfully.
And since you are working on a Asp.Net Core project and has imported DNX runner, you can also add a "Command Line" task to use dnx test command to run the testing directly.
Upvotes: 1