コード例 #1
0
ファイル: TestDiscovererTests.cs プロジェクト: yuts/PTVS
        public void TestCaseRunTestsWithTest() {
            using (var analyzer = MakeTestAnalyzer()) {
                var entry = AddModule(analyzer, "__main__", @"import unittest

class TestBase(unittest.TestCase):
    def test_1(self):
        pass
    def runTest(self):
        pass
");

                entry.Analyze(CancellationToken.None, true);
                analyzer.AnalyzeQueuedEntries(CancellationToken.None);

                var test = TestAnalyzer.GetTestCases(entry).ToList();
                AssertUtil.ContainsExactly(test.Select(t => t.MethodName), "test_1");
            }
        }
コード例 #2
0
ファイル: TestDiscovererTests.cs プロジェクト: yuts/PTVS
        public void TestCaseRunTests() {
            using (var analyzer = MakeTestAnalyzer()) {
                var entry = AddModule(analyzer, "__main__", @"import unittest

class TestBase(unittest.TestCase):
    def runTests(self):
        pass # should not discover this as it isn't runTest or test*
    def runTest(self):
        pass
");

                entry.Analyze(CancellationToken.None, true);
                analyzer.AnalyzeQueuedEntries(CancellationToken.None);

                var test = TestAnalyzer.GetTestCases(entry).ToList();
                AssertUtil.ContainsExactly(test.Select(t => t.ClassName), "TestBase");
            }
        }
コード例 #3
0
ファイル: TestDiscovererTests.cs プロジェクト: vovoma/PTVS
        public void TestCaseSubclasses()
        {
            using (var analyzer = MakeTestAnalyzer()) {
                var entry1 = AddModule(analyzer, "Pkg.SubPkg", @"import unittest

class TestBase(unittest.TestCase):
    pass
");

                var entry2 = AddModule(
                    analyzer,
                    "Pkg",
                    moduleFile: "Pkg\\__init__.py",
                    code: @"from .SubPkg import TestBase"
                    );

                var entry3 = AddModule(analyzer, "__main__", @"from Pkg.SubPkg import TestBase as TB1
from Pkg import TestBase as TB2
from Pkg import *

class MyTest1(TB1):
    def test1(self):
        pass

class MyTest2(TB2):
    def test2(self):
        pass

class MyTest3(TestBase):
    def test3(self):
        pass
");

                entry1.Analyze(CancellationToken.None, true);
                entry2.Analyze(CancellationToken.None, true);
                entry3.Analyze(CancellationToken.None, true);
                analyzer.AnalyzeQueuedEntries(CancellationToken.None);

                var test = TestAnalyzer.GetTestCases(entry3).ToList();
                AssertUtil.ContainsExactly(test.Select(t => t.MethodName), "test1", "test2", "test3");
            }
        }
コード例 #4
0
ファイル: TestDiscovererTests.cs プロジェクト: yuts/PTVS
        public void DecoratedTests() {
            using (var analyzer = MakeTestAnalyzer()) {
                var entry = AddModule(analyzer, "Fob", @"import unittest

def decorator(fn):
    def wrapped(*args, **kwargs):
        return fn(*args, **kwargs)
    return wrapped

class MyTest(unittest.TestCase):
    @decorator
    def testAbc(self):
        pass
");

                entry.Analyze(CancellationToken.None, true);
                analyzer.AnalyzeQueuedEntries(CancellationToken.None);

                var test = TestAnalyzer.GetTestCases(entry).Single();
                Assert.AreEqual("testAbc", test.MethodName);
                Assert.AreEqual(10, test.StartLine);
            }
        }