diff --git a/resources/dark/status-error.svg b/resources/dark/status-error.svg
index 60d9da3ab7d6..f3ec83bd73ac 100644
--- a/resources/dark/status-error.svg
+++ b/resources/dark/status-error.svg
@@ -1,3 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/resources/dark/status-ok.svg b/resources/dark/status-ok.svg
index 7ceef80edf95..89bf7bf6c26e 100644
--- a/resources/dark/status-ok.svg
+++ b/resources/dark/status-ok.svg
@@ -1,3 +1 @@
-
\ No newline at end of file
+
diff --git a/resources/dark/status-unknown.svg b/resources/dark/status-unknown.svg
index 055d724616da..50eb4c76e440 100644
--- a/resources/dark/status-unknown.svg
+++ b/resources/dark/status-unknown.svg
@@ -1,4 +1 @@
-
+
\ No newline at end of file
diff --git a/resources/dark/stop.svg b/resources/dark/stop.svg
index b0dc8ab665ab..831d58f96e0a 100644
--- a/resources/dark/stop.svg
+++ b/resources/dark/stop.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/resources/light/status-error.svg b/resources/light/status-error.svg
index 2ff82b459b4b..18b5c46ee232 100644
--- a/resources/light/status-error.svg
+++ b/resources/light/status-error.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/resources/light/status-ok.svg b/resources/light/status-ok.svg
index d45df06edf81..cb0c6551b4b5 100644
--- a/resources/light/status-ok.svg
+++ b/resources/light/status-ok.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/resources/light/status-unknown.svg b/resources/light/status-unknown.svg
index 055d724616da..3e0e8bc1b6ec 100644
--- a/resources/light/status-unknown.svg
+++ b/resources/light/status-unknown.svg
@@ -1,4 +1 @@
-
+
\ No newline at end of file
diff --git a/resources/light/stop.svg b/resources/light/stop.svg
index b0dc8ab665ab..7f3cba20b81e 100644
--- a/resources/light/stop.svg
+++ b/resources/light/stop.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/src/client/unittests/common/managers/baseTestManager.ts b/src/client/unittests/common/managers/baseTestManager.ts
index c8750e9f77d2..4d05fc2470dc 100644
--- a/src/client/unittests/common/managers/baseTestManager.ts
+++ b/src/client/unittests/common/managers/baseTestManager.ts
@@ -24,7 +24,7 @@ import { EventName } from '../../../telemetry/constants';
import { sendTelemetryEvent } from '../../../telemetry/index';
import { TestDiscoverytTelemetry, TestRunTelemetry } from '../../../telemetry/types';
import { IPythonUnitTestMessage, IUnitTestDiagnosticService, WorkspaceTestStatus } from '../../types';
-import { copyTestResults } from '../testUtils';
+import { copyDesiredTestResults } from '../testUtils';
import { CANCELLATION_REASON, CommandSource, TEST_OUTPUT_CHANNEL } from './../constants';
import {
ITestCollectionStorageService,
@@ -175,7 +175,7 @@ export abstract class BaseTestManager implements ITestManager {
if (clearTestStatus) {
this.resetTestResults();
} else if (existingTests) {
- copyTestResults(existingTests, tests);
+ copyDesiredTestResults(existingTests, tests);
this._testResultsService.updateResults(tests);
}
this.testCollectionStorage.storeTests(wkspace, tests);
diff --git a/src/client/unittests/common/services/testResultsService.ts b/src/client/unittests/common/services/testResultsService.ts
index 4030131a7fb9..58122faf14cc 100644
--- a/src/client/unittests/common/services/testResultsService.ts
+++ b/src/client/unittests/common/services/testResultsService.ts
@@ -38,6 +38,7 @@ export class TestResultsService implements ITestResultsService {
let totalTime = 0;
let allFilesPassed = true;
let noFilesRan = true;
+ testFolder.functionsPassed = testFolder.functionsFailed = testFolder.functionsDidNotRun = 0;
testFolder.testFiles.forEach(fl => {
totalTime += fl.time;
@@ -50,6 +51,7 @@ export class TestResultsService implements ITestResultsService {
testFolder.functionsFailed! += fl.functionsFailed!;
testFolder.functionsPassed! += fl.functionsPassed!;
+ testFolder.functionsDidNotRun! += fl.functionsDidNotRun!;
});
let allFoldersPassed = true;
@@ -67,6 +69,7 @@ export class TestResultsService implements ITestResultsService {
testFolder.functionsFailed! += folder.functionsFailed!;
testFolder.functionsPassed! += folder.functionsPassed!;
+ testFolder.functionsDidNotRun! += folder.functionsDidNotRun!;
});
testFolder.time = totalTime;
@@ -82,6 +85,7 @@ export class TestResultsService implements ITestResultsService {
let totalTime = 0;
let allFunctionsPassed = true;
let noFunctionsRan = true;
+ test.functionsPassed = test.functionsFailed = test.functionsDidNotRun = 0;
test.functions.forEach(fn => {
totalTime += fn.time;
@@ -93,6 +97,8 @@ export class TestResultsService implements ITestResultsService {
test.functionsFailed! += 1;
allFunctionsPassed = false;
}
+ } else {
+ test.functionsDidNotRun! += 1;
}
});
@@ -111,6 +117,7 @@ export class TestResultsService implements ITestResultsService {
test.functionsFailed! += suite.functionsFailed!;
test.functionsPassed! += suite.functionsPassed!;
+ test.functionsDidNotRun! += suite.functionsDidNotRun!;
});
test.time = totalTime;
diff --git a/src/client/unittests/common/testUtils.ts b/src/client/unittests/common/testUtils.ts
index 343b15fe0fd5..f19a57bd6da5 100644
--- a/src/client/unittests/common/testUtils.ts
+++ b/src/client/unittests/common/testUtils.ts
@@ -155,7 +155,7 @@ export class TestsHelper implements ITestsHelper {
newPath = path.join(parentPath, currentName);
}
if (!folderMap.has(newPath)) {
- const testFolder: TestFolder = { resource, name: newPath, testFiles: [], folders: [], nameToRun: newPath, time: 0 };
+ const testFolder: TestFolder = { resource, name: newPath, testFiles: [], folders: [], nameToRun: newPath, time: 0, functionsPassed: 0, functionsFailed: 0, functionsDidNotRun: 0 };
folderMap.set(newPath, testFolder);
if (parentFolder) {
parentFolder!.folders.push(testFolder);
@@ -198,7 +198,7 @@ export class TestsHelper implements ITestsHelper {
}
// Just return this as a test file.
- return { testFile: [{ resource: Uri.file(rootDirectory), name: name, nameToRun: name, functions: [], suites: [], xmlName: name, fullPath: '', time: 0 }] };
+ return { testFile: [{ resource: Uri.file(rootDirectory), name: name, nameToRun: name, functions: [], suites: [], xmlName: name, fullPath: '', time: 0, functionsPassed: 0, functionsFailed: 0, functionsDidNotRun: 0 }] };
}
public displayTestErrorMessage(message: string) {
this.appShell.showErrorMessage(message, constants.Button_Text_Tests_View_Output).then(action => {
@@ -482,7 +482,7 @@ export function isSubtestsParent(suite: TestSuite): boolean {
return subtestParent.asSuite === suite;
}
-export function copyTestResults(source: Tests, target: Tests): void {
+export function copyDesiredTestResults(source: Tests, target: Tests): void {
copyResultsForFolders(source.testFolders, target.testFolders);
}
@@ -494,6 +494,8 @@ function copyResultsForFolders(source: TestFolder[], target: TestFolder[]): void
}
copyValueTypes(sourceFolder, targetFolder);
copyResultsForFiles(sourceFolder.testFiles, targetFolder.testFiles);
+ // These should be reinitialized
+ targetFolder.functionsPassed = targetFolder.functionsDidNotRun = targetFolder.functionsFailed = 0;
});
}
function copyResultsForFiles(source: TestFile[], target: TestFile[]): void {
@@ -505,6 +507,8 @@ function copyResultsForFiles(source: TestFile[], target: TestFile[]): void {
copyValueTypes(sourceFile, targetFile);
copyResultsForFunctions(sourceFile.functions, targetFile.functions);
copyResultsForSuites(sourceFile.suites, targetFile.suites);
+ // These should be reinitialized
+ targetFile.functionsPassed = targetFile.functionsDidNotRun = targetFile.functionsFailed = 0;
});
}
@@ -529,6 +533,8 @@ function copyResultsForSuites(source: TestSuite[], target: TestSuite[]): void {
copyValueTypes(sourceSuite, targetSuite);
copyResultsForFunctions(sourceSuite.functions, targetSuite.functions);
copyResultsForSuites(sourceSuite.suites, targetSuite.suites);
+ // These should be reinitialized
+ targetSuite.functionsPassed = targetSuite.functionsDidNotRun = targetSuite.functionsFailed = 0;
});
}
@@ -539,4 +545,4 @@ function copyValueTypes(source: T, target: T): void {
target[key] = value;
}
});
- }
+}
diff --git a/src/client/unittests/explorer/testTreeViewItem.ts b/src/client/unittests/explorer/testTreeViewItem.ts
index 223576ff21f7..bce85268c056 100644
--- a/src/client/unittests/explorer/testTreeViewItem.ts
+++ b/src/client/unittests/explorer/testTreeViewItem.ts
@@ -72,19 +72,19 @@ export class TestTreeItem extends TreeItem {
return '';
}
const result = this.data as TestResult;
- if (!result.status || result.status === TestStatus.Idle || result.status === TestStatus.Unknown || result.status === TestStatus.Skipped){
+ if (!result.status || result.status === TestStatus.Idle || result.status === TestStatus.Unknown || result.status === TestStatus.Skipped) {
return '';
}
if (this.testType !== TestType.testFunction) {
- return `${result.functionsFailed} failed, ${result.functionsPassed} passed in ${result.time} seconds`;
+ return `${result.functionsFailed} failed, ${result.functionsPassed} passed in ${+result.time.toFixed(3)} seconds`;
}
switch (this.data.status) {
case TestStatus.Error:
case TestStatus.Fail: {
- return `Failed in ${result.time} seconds`;
+ return `Failed in ${+result.time.toFixed(3)} seconds`;
}
case TestStatus.Pass: {
- return `Passed in ${result.time} seconds`;
+ return `Passed in ${+result.time.toFixed(3)} seconds`;
}
case TestStatus.Discovering:
case TestStatus.Running: {
diff --git a/src/test/common/variables/envVarsProvider.multiroot.test.ts b/src/test/common/variables/envVarsProvider.multiroot.test.ts
index fc49cb6fea23..117ee19ffb0d 100644
--- a/src/test/common/variables/envVarsProvider.multiroot.test.ts
+++ b/src/test/common/variables/envVarsProvider.multiroot.test.ts
@@ -373,6 +373,8 @@ suite('Multiroot Environment Variables Provider', () => {
});
test('Change event will be raised when when .env file is created, modified and deleted', async function () {
+ // tslint:disable-next-line:no-invalid-this
+ this.skip();
// tslint:disable-next-line:no-invalid-this
this.timeout(20000);
const env3 = path.join(workspace4Path.fsPath, '.env3');
diff --git a/src/test/unittests/common/services/storageService.unit.test.ts b/src/test/unittests/common/services/storageService.unit.test.ts
index 2817fa03902f..0edbd6617ce9 100644
--- a/src/test/unittests/common/services/storageService.unit.test.ts
+++ b/src/test/unittests/common/services/storageService.unit.test.ts
@@ -4,7 +4,7 @@
'use strict';
import * as assert from 'assert';
-import { copyTestResults } from '../../../../client/unittests/common/testUtils';
+import { copyDesiredTestResults } from '../../../../client/unittests/common/testUtils';
import { FlattenedTestFunction, FlattenedTestSuite, TestFile, TestFolder, TestFunction, Tests, TestStatus, TestSuite, TestType } from '../../../../client/unittests/common/types';
import { createMockTestDataItem } from '../testUtils.unit.test';
@@ -114,7 +114,7 @@ suite('Unit Tests - Storage Service', () => {
assert.notDeepEqual(testData1.testFunctions[1].testFunction, testData2.testFunctions[1].testFunction);
assert.notDeepEqual(testData1.testFunctions[2].testFunction, testData2.testFunctions[2].testFunction);
- copyTestResults(testData1, testData2);
+ copyDesiredTestResults(testData1, testData2);
// Function 1 is in a different suite now, hence should not get updated.
assert.notDeepEqual(testData1.testFunctions[0].testFunction, testData2.testFunctions[0].testFunction);