Skip to content

Commit

Permalink
Adjuste for dynamic location of the definitions file of rabbitmq.
Browse files Browse the repository at this point in the history
  • Loading branch information
israelsantiago committed Oct 7, 2020
1 parent 6c9e69f commit 19c38fd
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 126 deletions.
105 changes: 17 additions & 88 deletions CodeCoverage.runsettings
Original file line number Diff line number Diff line change
Expand Up @@ -6,95 +6,24 @@
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<!--
Additional paths to search for .pdb (symbol) files. Symbols must be found for modules to be instrumented.
If .pdb files are in the same folder as the .dll or .exe files, they are automatically found. Otherwise, specify them here.
Note that searching for symbols increases code coverage runtime. So keep this small and local.
-->
<!--
<SymbolSearchPaths>
<Path>C:\Users\User\Documents\Visual Studio 2012\Projects\ProjectX\bin\Debug</Path>
<Path>\\mybuildshare\builds\ProjectX</Path>
</SymbolSearchPaths>
-->

<!--
About include/exclude lists:
Empty "Include" clauses imply all; empty "Exclude" clauses imply none.
Each element in the list is a regular expression (ECMAScript syntax). See /visualstudio/ide/using-regular-expressions-in-visual-studio.
An item must first match at least one entry in the include list to be included.
Included items must then not match any entries in the exclude list to remain included.
-->

<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
</Exclude>
</ModulePaths>

<!-- Match fully qualified names of functions: -->
<!-- (Use "\." to delimit namespaces in C# or Visual Basic, "::" in C++.) -->
<Functions>
<Exclude>
<Function>^Fabrikam\.UnitTest\..*</Function>
<Function>^std::.*</Function>
<Function>^ATL::.*</Function>
<Function>.*::__GetTestMethodInfo.*</Function>
<Function>^Microsoft::VisualStudio::CppCodeCoverageFramework::.*</Function>
<Function>^Microsoft::VisualStudio::CppUnitTestFramework::.*</Function>
</Exclude>
</Functions>

<!-- Match attributes on any code element: -->
<Attributes>
<Exclude>
<!-- Don't forget "Attribute" at the end of the name -->
<Attribute>^System\.Diagnostics\.DebuggerHiddenAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.DebuggerNonUserCodeAttribute$</Attribute>
<Attribute>^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$</Attribute>
<Attribute>^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>

<!-- Match the path of the source files in which each method is defined: -->
<Sources>
<Exclude>
<Source>.*\\atlmfc\\.*</Source>
<Source>.*\\vctools\\.*</Source>
<Source>.*\\public\\sdk\\.*</Source>
<Source>.*\\microsoft sdks\\.*</Source>
<Source>.*\\vc\\include\\.*</Source>
</Exclude>
</Sources>

<!-- Match the company name property in the assembly: -->
<CompanyNames>
<Exclude>
<CompanyName>.*microsoft.*</CompanyName>
</Exclude>
</CompanyNames>

<!-- Match the public key token of a signed assembly: -->
<PublicKeyTokens>
<!-- Exclude Visual Studio extensions: -->
<Exclude>
<PublicKeyToken>^B77A5C561934E089$</PublicKeyToken>
<PublicKeyToken>^B03F5F7F11D50A3A$</PublicKeyToken>
<PublicKeyToken>^31BF3856AD364E35$</PublicKeyToken>
<PublicKeyToken>^89845DCD8080CC91$</PublicKeyToken>
<PublicKeyToken>^71E9BCE111E9429C$</PublicKeyToken>
<PublicKeyToken>^8F50407C4E9E73B6$</PublicKeyToken>
<PublicKeyToken>^E361AF139669C375$</PublicKeyToken>
</Exclude>
</PublicKeyTokens>

<!-- Match assembly file paths: -->
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
<ModulePath>.*\.pdb$</ModulePath>
<ModulePath>.*\.exe$</ModulePath>
</Include>
<!--
<Exclude>
<ModulePath>.*PoC.TestesServicos.Tests.dll</ModulePath>
<ModulePath>.*xunit.*</ModulePath>
<ModulePath>.*refit.*</ModulePath>
<ModulePath>.*system.*</ModulePath>
</Exclude>
-->
</ModulePaths>

<!-- We recommend you do not change the following values: -->

<!-- Set this to True to collect coverage information for functions marked with the "SecuritySafeCritical" attribute. Instead of writing directly into a memory location from such functions, code coverage inserts a probe that redirects to another function, which in turns writes into memory. -->
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
<!-- When set to True, collects coverage information from child processes that are launched with low-level ACLs, for example, UWP apps. -->
Expand Down
2 changes: 1 addition & 1 deletion src/PoC.TestesServicos.Core/PoC.TestesServicos.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Options" Version="3.1.7" />
<PackageReference Include="Microsoft.OpenApi" Version="1.1.4" />
<PackageReference Include="refit" Version="5.1.67" />
<PackageReference Include="refit" Version="5.2.1" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
</ItemGroup>

Expand Down
2 changes: 1 addition & 1 deletion src/PoC.TestesServicos.Tests/ControllerTestsBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public ControllerTestsBase(IntegrationTestFixture<StartupApiTests> integrationCo
Client = integrationContainersFixture.Client;
_scope = integrationContainersFixture.Factory.Server.Host.Services.CreateScope();
//_integrationContainersFixture = integrationContainersFixture;
_connectionStringDB = integrationContainersFixture.ConnectionStringDB;
_connectionStringDB = integrationContainersFixture.ConnectionStringDb;
_checkpoint = new Checkpoint();
Context = _scope.ServiceProvider.GetRequiredService<UsersDataContext>();
}
Expand Down
1 change: 1 addition & 0 deletions src/PoC.TestesServicos.Tests/CustomerClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using PoC.TestesServicos.Tests.Fixtures;
using Xunit;

[assembly: AssemblyTrait("Category", "SkipWhenLiveUnitTesting")]
namespace PoC.TestesServicos.Tests
{
[Collection(nameof(IntegrationApiTestFixtureCollection))]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,9 @@ public RabbitmqContainerFixture()
Password = "rabbitmq",
})
.WithPortBinding(AdminPortRabbitMqHost, AdminPortRabbitMq ) // Rabbitmq admin port;
// TODO tratar de forma dinamica a localização do arquivo abaixo...
.WithMount( "C://dev//NET//Poc.TestesServicos//src//PoC.TestesServicos.Tests//bin//Debug//netcoreapp3.1//Fixtures//Configurations//Messagebrokers//Rabbitmq//definitions.json",
.WithMount( "./Fixtures/Configurations/Messagebrokers/rabbitmq/definitions.json",
"/etc/rabbitmq/definitions.json"); // Convenção sobre configuração, nesta versão do RabbitMQ 3.8.5, se o arquivo definitions.json for 'montado'
// em /etc/rabbitmq/definitions, no startup do RabbitMQ, as definições serão importandas.
// _pactDirectory = $"{Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).Parent.Parent.Parent.FullName}/pacts/updated-pact.json";


Container = testcontainersBuilder.Build();
}
Expand Down
56 changes: 28 additions & 28 deletions src/PoC.TestesServicos.Tests/Fixtures/IntegrationTestFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ public class IntegrationApiTestFixtureCollection : ICollectionFixture<Integratio
}
public class IntegrationTestFixture<TStartup> : IDisposable, IAsyncLifetime where TStartup : class
{
public MssqlContainerFixture mssqlContainerFixture { get; }
public string ConnectionStringDB { get; private set; }
public MssqlContainerFixture MssqlContainerFixture { get; }
public string ConnectionStringDb { get; private set; }

public CouchbaseContainerFixture couchbaseContainerFixture { get; }
public string hostCouchbase { get; private set; }
public CouchbaseContainerFixture CouchbaseContainerFixture { get; }
public string HostCouchbase { get; private set; }
public string UserNameCouchBase { get; private set; }
public string PasswordCouchbase { get; private set; }
public string BucketName { get; private set; }
private RabbitmqContainerFixture rabbitmqContainerFixture { get; }
public MongodbContainerFixture mongodbContainerFixture { get; }
public MysqlContainerFixture mysqlContainerFixture { get; }
private RabbitmqContainerFixture RabbitmqContainerFixture { get; }
public MongodbContainerFixture MongodbContainerFixture { get; }
public MysqlContainerFixture MysqlContainerFixture { get; }
public WireMockServer MockServer { get; private set; }
public string MockeServerUrl { get; private set; }

Expand All @@ -42,22 +42,22 @@ public class IntegrationTestFixture<TStartup> : IDisposable, IAsyncLifetime whe

public IntegrationTestFixture()
{
mssqlContainerFixture = new MssqlContainerFixture();
couchbaseContainerFixture = new CouchbaseContainerFixture();
rabbitmqContainerFixture = new RabbitmqContainerFixture();
mongodbContainerFixture = new MongodbContainerFixture();
mysqlContainerFixture = new MysqlContainerFixture();
MssqlContainerFixture = new MssqlContainerFixture();
CouchbaseContainerFixture = new CouchbaseContainerFixture();
RabbitmqContainerFixture = new RabbitmqContainerFixture();
MongodbContainerFixture = new MongodbContainerFixture();
MysqlContainerFixture = new MysqlContainerFixture();
MockServer = SetupMockedServer();
}

public async Task InitializeAsync()
{

var task1 = mssqlContainerFixture.InitializeAsync();
var task2 = couchbaseContainerFixture.InitializeAsync();
var task3 = rabbitmqContainerFixture.InitializeAsync();
var task4 = mongodbContainerFixture.InitializeAsync();
var task5 = mysqlContainerFixture.InitializeAsync();
var task1 = MssqlContainerFixture.InitializeAsync();
var task2 = CouchbaseContainerFixture.InitializeAsync();
var task3 = RabbitmqContainerFixture.InitializeAsync();
var task4 = MongodbContainerFixture.InitializeAsync();
var task5 = MysqlContainerFixture.InitializeAsync();

Task allTasks = Task.WhenAll(task1, task2, task3, task4, task5);

Expand All @@ -70,7 +70,7 @@ public async Task InitializeAsync()
AggregateException allExceptions = allTasks.Exception;
}

ConnectionStringDB = mssqlContainerFixture.Container.ConnectionString;
ConnectionStringDb = MssqlContainerFixture.Container.ConnectionString;

var clientOptions = new WebApplicationFactoryClientOptions()
{
Expand All @@ -79,14 +79,14 @@ public async Task InitializeAsync()
MaxAutomaticRedirections = 7
};

hostCouchbase = couchbaseContainerFixture.Container.ConnectionString;
UserNameCouchBase = couchbaseContainerFixture.Container.Username;
PasswordCouchbase = couchbaseContainerFixture.Container.Password;
BucketName = couchbaseContainerFixture.BucketName;
HostCouchbase = CouchbaseContainerFixture.Container.ConnectionString;
UserNameCouchBase = CouchbaseContainerFixture.Container.Username;
PasswordCouchbase = CouchbaseContainerFixture.Container.Password;
BucketName = CouchbaseContainerFixture.BucketName;

MockeServerUrl = MockServer.Urls.Single();

Factory = new IntegrationContainersAppFactory<TStartup>(ConnectionStringDB, hostCouchbase, UserNameCouchBase, PasswordCouchbase, BucketName, MockeServerUrl);
Factory = new IntegrationContainersAppFactory<TStartup>(ConnectionStringDb, HostCouchbase, UserNameCouchBase, PasswordCouchbase, BucketName, MockeServerUrl);

Client = Factory.CreateClient(clientOptions);

Expand Down Expand Up @@ -126,11 +126,11 @@ public void Dispose()
Client.Dispose();
Factory.Dispose();

mssqlContainerFixture.DisposeAsync();
couchbaseContainerFixture.DisposeAsync();
rabbitmqContainerFixture.DisposeAsync();
mongodbContainerFixture.DisposeAsync();
mysqlContainerFixture.DisposeAsync();
MssqlContainerFixture.DisposeAsync();
CouchbaseContainerFixture.DisposeAsync();
RabbitmqContainerFixture.DisposeAsync();
MongodbContainerFixture.DisposeAsync();
MysqlContainerFixture.DisposeAsync();

MockServer.Stop();
MockServer.Dispose();
Expand Down
24 changes: 20 additions & 4 deletions src/PoC.TestesServicos.Tests/PoC.TestesServicos.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,16 @@

<ItemGroup>
<PackageReference Include="CouchbaseNetClient" Version="3.0.5" />
<PackageReference Include="coverlet.collector" Version="1.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.msbuild" Version="2.9.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="DotNet.Testcontainers" Version="1.4.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.7" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.8" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="RabbitMQ.Client" Version="6.2.1" />
<PackageReference Include="Respawn" Version="3.3.0" />
Expand All @@ -32,9 +40,6 @@
<None Update="Mappings\get_customer_ok.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Fixtures\Configurations\Servicevirtualizations\wiremock.net\Mappings\get_customer_ok.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Fixtures\Configurations\Messagebrokers\Rabbitmq\definitions.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Expand All @@ -51,4 +56,15 @@
<Folder Include="unit" />
</ItemGroup>

<ItemGroup>
<None Remove="Fixtures\Configurations\Messagebrokers\rabbitmq\definitions.json" />
<Content Include="Fixtures\Configurations\Messagebrokers\rabbitmq\definitions.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Remove="Fixtures\Configurations\Servicevirtualizations\wiremock.net\Mappings\get_customer_ok.json" />
<Content Include="Fixtures\Configurations\Servicevirtualizations\wiremock.net\Mappings\get_customer_ok.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

</Project>

0 comments on commit 19c38fd

Please sign in to comment.