Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c8dee7b

Browse files
committed
added test Provider
1 parent 4bc1301 commit c8dee7b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/client/providers/testProvider.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"use strict";
2+
import * as vscode from "vscode";
3+
import * as baseTest from "./../unittest/baseTestRunner";
4+
import * as unittest from "./../unittest/unittest";
5+
import * as nosetest from "./../unittest/nosetests";
6+
import * as pytest from "./../unittest/pytest";
7+
import * as settings from "./../common/configSettings";
8+
import * as telemetryHelper from "../common/telemetry";
9+
import * as telemetryContracts from "../common/telemetryContracts";
10+
11+
let pythonOutputChannel: vscode.OutputChannel;
12+
let testProviders: baseTest.BaseTestRunner[] = [];
13+
14+
export function activateUnitTestProvider(context: vscode.ExtensionContext, settings: settings.IPythonSettings, outputChannel: vscode.OutputChannel) {
15+
pythonOutputChannel = outputChannel;
16+
vscode.commands.registerCommand("python.runtests", () => runUnitTests());
17+
18+
testProviders.push(new unittest.PythonUnitTest(settings, outputChannel));
19+
testProviders.push(new nosetest.NoseTests(settings, outputChannel));
20+
testProviders.push(new pytest.PyTestTests(settings, outputChannel));
21+
}
22+
23+
function runUnitTests(filePath: string = "") {
24+
pythonOutputChannel.clear();
25+
26+
let promises = testProviders.map(t => {
27+
if (!t.isEnabled()) {
28+
return Promise.resolve();
29+
}
30+
let delays = new telemetryHelper.Delays();
31+
t.runTests(filePath).then(() => {
32+
delays.stop();
33+
telemetryHelper.sendTelemetryEvent(telemetryContracts.Commands.UnitTests, { UnitTest_Provider: t.Id }, delays.toMeasures());
34+
});
35+
});
36+
Promise.all(promises).then(() => {
37+
pythonOutputChannel.show();
38+
});
39+
}

0 commit comments

Comments
 (0)