.NET

Criando um projeto .NET Core 2.0 com XUnit e Shoudly usando o dotnet-cli

AppTestVsCode

Criando a solução

$> mkdir AppTest
$> cd AppTest
$> dotnet new sln

Criando o projeto de domínio com biblioteca de classes e adicionando na solução

$> dotnet new library -n AppTest
$> dotnet sln add AppTest\AppTest.csproj
$> dotnet restore AppTest\AppTest.csproj

Criando o projeto de testes, acrescentando a referência para a biblioteca de domínio e ao Shoudly, e adicionando na solução

$> dotnet new xunit -n AppTest.Test
$> dotnet add AppTest.Test\AppTest.Test.csproj reference AppTest\AppTest.csproj
$> dotnet add AppTest\AppTest.csproj package Shouldly
$> dotnet sln add AppTest.Test\AppTest.Test.csproj
$> dotnet restore AppTest.Test\AppTest.Test.csproj

Criando o projeto da interface de usuário como ASP.NET Core MVC e adicionando na solução

$> dotnet new mvc -n AppTest.Web
$> dotnet sln add AppTest.Web\AppTest.Web.csproj
$> dotnet restore AppTest.Web\AppTest.Web.csproj

Criando o projeto de testes, acrescentando a referência para a interface de usuário e ao Shoudly, e adicionando na solução

$> dotnet new xunit -n AppTest.Web.Test
$> dotnet add AppTest.Web.Test\AppTest.Web.Test.csproj reference AppTest.Web\AppTest.Web.csproj
$> dotnet add AppTest.Web\AppTest.Web.csproj package Shouldly
$> dotnet sln add AppTest.Web.Test\AppTest.Web.Test.csproj
$> dotnet restore AppTest.Web.Test\AppTest.Web.Test.csproj

Construindo a solução

$> dotnet build

Para corrigir o problema ao executar o “dotnet test” em todos os projetos, criar os arquivos na raiz da solução

after.AppTest.sln.targets

<Project>
 <Target Name="VSTest">
   <MSBuild Projects="@(ProjectReference)" Targets="VSTestIfTestProject" Properties="%(ProjectReference.AdditionalProperties)" />
 </Target>
</Project>

Directory.Build.targets

<Project>
 <Target Name="VSTestIfTestProject">
   <CallTarget Targets="VSTest" Condition="'$(IsTestProject)' == 'true'" />
 </Target>
</Project>

Executando os testes e construindo a solução

$> dotnet test
$> dotnet build

Referências

https://stackoverflow.com/questions/42730877/net-core-when-to-use-dotnet-new-sln
https://gist.github.com/dasMulli/6fb5d1f507b886aeebaf27069f47f895

Instalando o .NET Core 2.0 no CentOS 7 1708

Habilitando o repositório

# rpm --import https://packages.microsoft.com/keys/microsoft.asc
# sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
# yum -y update

Instalando o .NET Core 2.0 SDK

# yum -y install libunwind libicu dotnet-sdk-2.0.0

Testando

Criando um projeto do Console

# dotnet new console -o hwapp
# cd hwapp
# tee Program.cs <<'EOF'
using System;

namespace hwapp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
EOF

Executando

# dotnet run

Referências

https://www.microsoft.com/net/core#linuxcentos