mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
* Add clean target * include in test baselines * adding one more test
This commit is contained in:
@@ -61,4 +61,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Properties" />
|
<Folder Include="Properties" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
|
||||||
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -111,6 +111,11 @@ export const Include = 'Include';
|
|||||||
export const Import = 'Import';
|
export const Import = 'Import';
|
||||||
export const Project = 'Project';
|
export const Project = 'Project';
|
||||||
export const Condition = 'Condition';
|
export const Condition = 'Condition';
|
||||||
|
export const Target = 'Target';
|
||||||
|
export const Name = 'Name';
|
||||||
|
export const AfterCleanTarget = 'AfterClean';
|
||||||
|
export const Delete = 'Delete';
|
||||||
|
export const Files = 'Files';
|
||||||
export const PackageReference = 'PackageReference';
|
export const PackageReference = 'PackageReference';
|
||||||
export const Version = 'Version';
|
export const Version = 'Version';
|
||||||
export const PrivateAssets = 'PrivateAssets';
|
export const PrivateAssets = 'PrivateAssets';
|
||||||
@@ -128,6 +133,7 @@ export const SqlDbPresentCondition = '\'$(SQLDBExtensionsRefPath)\' != \'\'';
|
|||||||
export const SqlDbNotPresentCondition = '\'$(SQLDBExtensionsRefPath)\' == \'\'';
|
export const SqlDbNotPresentCondition = '\'$(SQLDBExtensionsRefPath)\' == \'\'';
|
||||||
export const RoundTripSqlDbPresentCondition = '\'$(NetCoreBuild)\' != \'true\' AND \'$(SQLDBExtensionsRefPath)\' != \'\'';
|
export const RoundTripSqlDbPresentCondition = '\'$(NetCoreBuild)\' != \'true\' AND \'$(SQLDBExtensionsRefPath)\' != \'\'';
|
||||||
export const RoundTripSqlDbNotPresentCondition = '\'$(NetCoreBuild)\' != \'true\' AND \'$(SQLDBExtensionsRefPath)\' == \'\'';
|
export const RoundTripSqlDbNotPresentCondition = '\'$(NetCoreBuild)\' != \'true\' AND \'$(SQLDBExtensionsRefPath)\' == \'\'';
|
||||||
|
export const ProjJsonToClean = '$(BaseIntermediateOutputPath)\\project.assets.json';
|
||||||
|
|
||||||
// SqlProj Reference Assembly Information
|
// SqlProj Reference Assembly Information
|
||||||
export const NETFrameworkAssembly = 'Microsoft.NETFramework.ReferenceAssemblies';
|
export const NETFrameworkAssembly = 'Microsoft.NETFramework.ReferenceAssemblies';
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ export class Project {
|
|||||||
await fs.copyFile(this.projectFilePath, this.projectFilePath + '_backup');
|
await fs.copyFile(this.projectFilePath, this.projectFilePath + '_backup');
|
||||||
await this.updateImportToSupportRoundTrip();
|
await this.updateImportToSupportRoundTrip();
|
||||||
await this.updatePackageReferenceInProjFile();
|
await this.updatePackageReferenceInProjFile();
|
||||||
|
await this.updateAfterCleanTargetInProjFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async updateImportToSupportRoundTrip(): Promise<void> {
|
private async updateImportToSupportRoundTrip(): Promise<void> {
|
||||||
@@ -99,6 +100,30 @@ export class Project {
|
|||||||
await this.updateImportedTargetsToProjFile(constants.NetCoreCondition, constants.NetCoreTargets, undefined);
|
await this.updateImportedTargetsToProjFile(constants.NetCoreCondition, constants.NetCoreTargets, undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async updateAfterCleanTargetInProjFile(): Promise<void> {
|
||||||
|
// Search if clean target already present, update it
|
||||||
|
for (let i = 0; i < this.projFileXmlDoc.documentElement.getElementsByTagName(constants.Target).length; i++) {
|
||||||
|
const afterCleanNode = this.projFileXmlDoc.documentElement.getElementsByTagName(constants.Target)[i];
|
||||||
|
const name = afterCleanNode.getAttribute(constants.Name);
|
||||||
|
if (name === constants.AfterCleanTarget) {
|
||||||
|
return await this.createCleanFileNode(afterCleanNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If clean target not found, create new
|
||||||
|
const afterCleanNode = this.projFileXmlDoc.createElement(constants.Target);
|
||||||
|
afterCleanNode.setAttribute(constants.Name, constants.AfterCleanTarget);
|
||||||
|
this.projFileXmlDoc.documentElement.appendChild(afterCleanNode);
|
||||||
|
await this.createCleanFileNode(afterCleanNode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async createCleanFileNode(parentNode: any): Promise<void> {
|
||||||
|
const deleteFileNode = this.projFileXmlDoc.createElement(constants.Delete);
|
||||||
|
deleteFileNode.setAttribute(constants.Files, constants.ProjJsonToClean);
|
||||||
|
parentNode.appendChild(deleteFileNode);
|
||||||
|
await this.serializeToProjFile(this.projFileXmlDoc);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a folder to the project, and saves the project file
|
* Adds a folder to the project, and saves the project file
|
||||||
* @param relativeFolderPath Relative path of the folder
|
* @param relativeFolderPath Relative path of the folder
|
||||||
|
|||||||
@@ -73,4 +73,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
|
<PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
|
||||||
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<Name>TestProjectName</Name>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectVersion>4.1</ProjectVersion>
|
||||||
|
<ProjectGuid>{BA5EBA11-C0DE-5EA7-ACED-BABB1E70A575}</ProjectGuid>
|
||||||
|
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider</DSP>
|
||||||
|
<OutputType>Database</OutputType>
|
||||||
|
<RootPath>
|
||||||
|
</RootPath>
|
||||||
|
<RootNamespace>TestProjectName</RootNamespace>
|
||||||
|
<AssemblyName>TestProjectName</AssemblyName>
|
||||||
|
<ModelCollation>1033, CI</ModelCollation>
|
||||||
|
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
|
||||||
|
<DeployToDatabase>True</DeployToDatabase>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<TargetLanguage>CS</TargetLanguage>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<SqlServerVerification>False</SqlServerVerification>
|
||||||
|
<IncludeCompositeObjects>True</IncludeCompositeObjects>
|
||||||
|
<TargetDatabaseSet>True</TargetDatabaseSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<DefineDebug>true</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
|
||||||
|
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
|
||||||
|
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
|
||||||
|
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||||
|
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<!-- Custom logic added by user -->
|
||||||
|
</Target>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Properties" />
|
||||||
|
<Folder Include="Tables" />
|
||||||
|
<Folder Include="Views" />
|
||||||
|
<Folder Include="Views\Maintenance" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Build Include="Tables\Users.sql" />
|
||||||
|
<Build Include="Tables\Action History.sql" />
|
||||||
|
<Build Include="Views\Maintenance\Database Performance.sql" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Views\User" />
|
||||||
|
<Build Include="Views\User\Profile.sql" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<Name>TestProjectName</Name>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectVersion>4.1</ProjectVersion>
|
||||||
|
<ProjectGuid>{BA5EBA11-C0DE-5EA7-ACED-BABB1E70A575}</ProjectGuid>
|
||||||
|
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider</DSP>
|
||||||
|
<OutputType>Database</OutputType>
|
||||||
|
<RootPath>
|
||||||
|
</RootPath>
|
||||||
|
<RootNamespace>TestProjectName</RootNamespace>
|
||||||
|
<AssemblyName>TestProjectName</AssemblyName>
|
||||||
|
<ModelCollation>1033, CI</ModelCollation>
|
||||||
|
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
|
||||||
|
<DeployToDatabase>True</DeployToDatabase>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<TargetLanguage>CS</TargetLanguage>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<SqlServerVerification>False</SqlServerVerification>
|
||||||
|
<IncludeCompositeObjects>True</IncludeCompositeObjects>
|
||||||
|
<TargetDatabaseSet>True</TargetDatabaseSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
|
||||||
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<DefineDebug>true</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
|
||||||
|
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
|
||||||
|
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
|
||||||
|
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
|
||||||
|
<Import Condition="'$(NetCoreBuild)' != 'true' AND '$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<!-- Custom logic added by user -->
|
||||||
|
<Delete Files="$(BaseIntermediateOutputPath)\project.assets.json"/>
|
||||||
|
</Target>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Properties"/>
|
||||||
|
<Folder Include="Tables"/>
|
||||||
|
<Folder Include="Views"/>
|
||||||
|
<Folder Include="Views\Maintenance"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Build Include="Tables\Users.sql"/>
|
||||||
|
<Build Include="Tables\Action History.sql"/>
|
||||||
|
<Build Include="Views\Maintenance\Database Performance.sql"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Views\User"/>
|
||||||
|
<Build Include="Views\User\Profile.sql"/>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Condition="'$(NetCoreBuild)' == 'true'" Project="$(NETCoreTargetsPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Condition="'$(NetCoreBuild)' == 'true'" Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All"/>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -12,6 +12,8 @@ export let openProjectFileBaseline: string;
|
|||||||
export let openDataSourcesBaseline: string;
|
export let openDataSourcesBaseline: string;
|
||||||
export let SSDTProjectFileBaseline: string;
|
export let SSDTProjectFileBaseline: string;
|
||||||
export let SSDTProjectAfterUpdateBaseline: string;
|
export let SSDTProjectAfterUpdateBaseline: string;
|
||||||
|
export let SSDTProjectBaselineWithCleanTarget: string;
|
||||||
|
export let SSDTProjectBaselineWithCleanTargetAfterUpdate: string;
|
||||||
|
|
||||||
const baselineFolderPath = __dirname;
|
const baselineFolderPath = __dirname;
|
||||||
|
|
||||||
@@ -21,6 +23,8 @@ export async function loadBaselines() {
|
|||||||
openDataSourcesBaseline = await loadBaseline(baselineFolderPath, 'openDataSourcesBaseline.json');
|
openDataSourcesBaseline = await loadBaseline(baselineFolderPath, 'openDataSourcesBaseline.json');
|
||||||
SSDTProjectFileBaseline = await loadBaseline(baselineFolderPath, 'SSDTProjectBaseline.xml');
|
SSDTProjectFileBaseline = await loadBaseline(baselineFolderPath, 'SSDTProjectBaseline.xml');
|
||||||
SSDTProjectAfterUpdateBaseline = await loadBaseline(baselineFolderPath, 'SSDTProjectAfterUpdateBaseline.xml');
|
SSDTProjectAfterUpdateBaseline = await loadBaseline(baselineFolderPath, 'SSDTProjectAfterUpdateBaseline.xml');
|
||||||
|
SSDTProjectBaselineWithCleanTarget = await loadBaseline(baselineFolderPath, 'SSDTProjectBaselineWithCleanTarget.xml');
|
||||||
|
SSDTProjectBaselineWithCleanTargetAfterUpdate = await loadBaseline(baselineFolderPath, 'SSDTProjectBaselineWithCleanTargetAfterUpdate.xml');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadBaseline(baselineFolderPath: string, fileName: string): Promise<string> {
|
async function loadBaseline(baselineFolderPath: string, fileName: string): Promise<string> {
|
||||||
|
|||||||
@@ -61,4 +61,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Properties" />
|
<Folder Include="Properties" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
|
||||||
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -79,4 +79,7 @@
|
|||||||
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
|
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
|
||||||
</ArtifactReference>
|
</ArtifactReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<Target Name="AfterClean">
|
||||||
|
<Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
|
||||||
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -157,7 +157,16 @@ describe('Project: round trip updates', function (): void {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should update SSDT project to work in ADS', async function (): Promise<void> {
|
it('Should update SSDT project to work in ADS', async function (): Promise<void> {
|
||||||
projFilePath = await testUtils.createTestSqlProjFile(baselines.SSDTProjectFileBaseline);
|
await testUpdateInRoundTrip(baselines.SSDTProjectFileBaseline, baselines.SSDTProjectAfterUpdateBaseline);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should update SSDT project to work in ADS handling pre-exsiting targets', async function (): Promise<void> {
|
||||||
|
await testUpdateInRoundTrip(baselines.SSDTProjectBaselineWithCleanTarget, baselines.SSDTProjectBaselineWithCleanTargetAfterUpdate);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
async function testUpdateInRoundTrip(fileBeforeupdate: string, fileAfterUpdate:string) : Promise<void> {
|
||||||
|
projFilePath = await testUtils.createTestSqlProjFile(fileBeforeupdate);
|
||||||
const project: Project = new Project(projFilePath);
|
const project: Project = new Project(projFilePath);
|
||||||
await project.readProjFile();
|
await project.readProjFile();
|
||||||
|
|
||||||
@@ -167,6 +176,5 @@ describe('Project: round trip updates', function (): void {
|
|||||||
should(project.importedTargets.length).equal(3); // additional target added by updateProjectForRoundTrip method
|
should(project.importedTargets.length).equal(3); // additional target added by updateProjectForRoundTrip method
|
||||||
|
|
||||||
let projFileText = (await fs.readFile(projFilePath)).toString();
|
let projFileText = (await fs.readFile(projFilePath)).toString();
|
||||||
should(projFileText).equal(baselines.SSDTProjectAfterUpdateBaseline.trim());
|
should(projFileText).equal(fileAfterUpdate.trim());
|
||||||
});
|
}
|
||||||
});
|
|
||||||
|
|||||||
Reference in New Issue
Block a user