コード例 #1
0
def main():
    cmd_opts, args = get_opts_remote()

    clear_old_results()

    print '--------------------------------------------------------------'

    runtests.runtests(
        args,
        test_dir=cmd_opts.dir_name,
        collect_only=cmd_opts.collect_only,
        report_format=cmd_opts.report_format,
        browser_type=cmd_opts.browser_type,
        browser_version=cmd_opts.browser_version,
        browser_platform=cmd_opts.browser_platform,
        session_name=cmd_opts.session_name,
        webdriver_remote_url=cmd_opts.webdriver_remote_url,
        javascript_disabled=cmd_opts.javascript_disabled,
        shared_directory=cmd_opts.shared_modules,
        screenshots_on=cmd_opts.screenshots_on,
        failfast=cmd_opts.failfast,
        debug=cmd_opts.debug,
        extended=cmd_opts.extended_tracebacks,
        saucelabs_enabled=cmd_opts.saucelabs_enabled,
        custom_options=cmd_opts.custom
    )

    print '--------------------------------------------------------------'
コード例 #2
0
def main():
    cmd_opts, args = get_opts_remote()

    clear_old_results()

    print "--------------------------------------------------------------"

    runtests.runtests(
        args,
        test_dir=cmd_opts.dir_name,
        file_match=cmd_opts.file_match,
        report_format=cmd_opts.report_format,
        browser_type=cmd_opts.browser_type,
        browser_version=cmd_opts.browser_version,
        browser_platform=cmd_opts.browser_platform,
        session_name=cmd_opts.session_name,
        webdriver_remote_url=cmd_opts.webdriver_remote_url,
        javascript_disabled=cmd_opts.javascript_disabled,
        shared_directory=cmd_opts.shared_modules,
        screenshots_on=cmd_opts.screenshots_on,
        failfast=cmd_opts.failfast,
        debug=cmd_opts.debug,
        extended=cmd_opts.extended_tracebacks,
    )

    print "--------------------------------------------------------------"
コード例 #3
0
ファイル: test_concurrency.py プロジェクト: DramaFever/sst
    def test_fail(self):
        tests.write_tree_from_desc('''dir: t
file: t/__init__.py
from sst import loaders
discover = loaders.discoverRegularTests

file: t/test_fail1.py
import unittest
class TestFail1(unittest.TestCase):
    def test_fail_1(self):
        self.assertTrue(False)

file: t/test_fail2.py
import unittest
class TestFail2(unittest.TestCase):
    def test_fail_2(self):
        self.assertTrue(False)
''')

        out = StringIO()
        runtests.runtests(
            ['^t'], 'no results directory used', out,
            concurrency_num=2,
            browser_factory=browsers.FirefoxFactory(),
        )
        output = out.getvalue()
        self.assertIn('Ran 2 tests', output)
        self.assertEqual(output.count('Traceback (most recent call last):'), 2)
        self.assertIn('FAILED (failures=2)', output)
コード例 #4
0
def main():
    cmd_opts, args = command.get_opts_remote()

    command.clear_old_results()

    print '--------------------------------------------------------------'

    browser_factory = runtests.RemoteBrowserFactory(
        {
            "browserName": cmd_opts.browser_type.lower(),
            "platform": cmd_opts.browser_platform.upper(),
            "version": cmd_opts.browser_version,
            "javascriptEnabled": not cmd_opts.javascript_disabled,
            "name": cmd_opts.session_name},
        cmd_opts.webdriver_remote_url)
    runtests.runtests(
        args,
        test_dir=cmd_opts.dir_name,
        count_only=cmd_opts.count_only,
        report_format=cmd_opts.report_format,
        browser_factory=browser_factory,
        shared_directory=cmd_opts.shared_modules,
        screenshots_on=cmd_opts.screenshots_on,
        failfast=cmd_opts.failfast,
        debug=cmd_opts.debug,
        extended=cmd_opts.extended_tracebacks,
        # FIXME: not tested -- vila 2013-05-23
        excludes=cmd_opts.excludes
    )

    print '--------------------------------------------------------------'
コード例 #5
0
    def test_fail(self):
        tests.write_tree_from_desc('''dir: t
file: t/__init__.py
from sst import loaders
discover = loaders.discoverRegularTests

file: t/test_fail1.py
import unittest
class TestFail1(unittest.TestCase):
    def test_fail_1(self):
        self.assertTrue(False)

file: t/test_fail2.py
import unittest
class TestFail2(unittest.TestCase):
    def test_fail_2(self):
        self.assertTrue(False)
''')

        out = StringIO()
        runtests.runtests(
            ['^t'],
            'no results directory used',
            out,
            concurrency_num=2,
            browser_factory=browsers.FirefoxFactory(),
        )
        output = out.getvalue()
        self.assertIn('Ran 2 tests', output)
        self.assertEqual(output.count('Traceback (most recent call last):'), 2)
        self.assertIn('FAILED (failures=2)', output)
コード例 #6
0
def main():
    cmd_opts, args = command.get_opts_remote()

    results_directory = os.path.abspath('results')
    command.reset_directory(results_directory)

    browser_factory = browsers.RemoteBrowserFactory(
        {
            "browserName": cmd_opts.browser_type.lower(),
            "platform": cmd_opts.browser_platform.upper(),
            "version": cmd_opts.browser_version,
            "name": cmd_opts.session_name},
        cmd_opts.webdriver_remote_url)
    runtests.runtests(
        args, results_directory, sys.stdout,
        test_dir=cmd_opts.dir_name,
        count_only=cmd_opts.count_only,
        report_format=cmd_opts.report_format,
        browser_factory=browser_factory,
        shared_directory=cmd_opts.shared_directory,
        screenshots_on=cmd_opts.screenshots_on,
        failfast=cmd_opts.failfast,
        debug=cmd_opts.debug,
        extended=cmd_opts.extended_tracebacks,
        # FIXME: not tested -- vila 2013-05-23
        excludes=cmd_opts.excludes
    )
コード例 #7
0
ファイル: remote.py プロジェクト: ikornaselur/sst
def main():
    cmd_opts, args = command.get_opts_remote()

    results_directory = os.path.abspath('results')
    command.reset_directory(results_directory,
                            cmd_opts.skip_clean_results)

    browser_factory = browsers.RemoteBrowserFactory(
        cmd_opts.webdriver_remote_url,
        {
            "browserName": cmd_opts.browser_type.lower(),
            "platform": cmd_opts.browser_platform.upper(),
            "version": cmd_opts.browser_version,
            "name": cmd_opts.session_name
        },
    )
    runtests.runtests(
        args, results_directory, sys.stdout,
        test_dir=cmd_opts.dir_name,
        collect_only=cmd_opts.collect_only,
        report_format=cmd_opts.report_format,
        browser_factory=browser_factory,
        shared_directory=cmd_opts.shared_directory,
        screenshots_on=cmd_opts.screenshots_on,
        failfast=cmd_opts.failfast,
        debug=cmd_opts.debug,
        extended=cmd_opts.extended_tracebacks,
        # FIXME: not tested -- vila 2013-05-23
        excludes=cmd_opts.excludes,
        xml_results_filename=cmd_opts.xml_results_filename
    )
コード例 #8
0
    def test_pass(self):
        tests.write_tree_from_desc('''dir: t
file: t/__init__.py
from sst import loaders
discover = loaders.discoverRegularTests

file: t/test_conc1.py
import unittest
class Test1(unittest.TestCase):
    def test_pass_1(self):
        self.assertTrue(True)

file: t/test_conc2.py
import unittest
class Test2(unittest.TestCase):
    def test_pass_2(self):
        self.assertTrue(True)
''')

        out = StringIO()
        runtests.runtests(
            ['^t'],
            'no results directory used',
            out,
            concurrency_num=2,
            browser_factory=browsers.FirefoxFactory(),
        )

        output = out.getvalue()
        self.assertIn('Ran 2 tests', output)
        self.assertIn('OK', output)
        self.assertNotIn('FAIL', output)
コード例 #9
0
ファイル: test_concurrency.py プロジェクト: DramaFever/sst
    def test_pass(self):
        tests.write_tree_from_desc('''dir: t
file: t/__init__.py
from sst import loaders
discover = loaders.discoverRegularTests

file: t/test_conc1.py
import unittest
class Test1(unittest.TestCase):
    def test_pass_1(self):
        self.assertTrue(True)

file: t/test_conc2.py
import unittest
class Test2(unittest.TestCase):
    def test_pass_2(self):
        self.assertTrue(True)
''')

        out = StringIO()
        runtests.runtests(
            ['^t'], 'no results directory used', out,
            concurrency_num=2,
            browser_factory=browsers.FirefoxFactory(),
        )

        output = out.getvalue()
        self.assertIn('Ran 2 tests', output)
        self.assertIn('OK', output)
        self.assertNotIn('FAIL', output)
コード例 #10
0
 def run_tests(self, test_dir, shared_dir=None):
     out = StringIO()
     runtests.runtests(None,
                       'no results directory used',
                       out,
                       test_dir=test_dir,
                       shared_directory=shared_dir,
                       collect_only=True)
     return out.getvalue().splitlines()
コード例 #11
0
 def run_tests(self, tests, **kwargs):
     out = StringIO()
     runtests.runtests(tests,
                       'no results directory used',
                       out,
                       test_dir='t',
                       collect_only=True,
                       **kwargs)
     lines = out.getvalue().splitlines()
     return lines
コード例 #12
0
def main():
    cmd_opts, args = command.get_opts_run()
    out = sys.stdout
    cleaner = command.Cleaner(out)

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        out.write('starting virtual display...')
        display = Xvfb(width=1024, height=768)
        display.start()
        cleaner.add('stopping virtual display...\n', display.stop)

    with cleaner:
        results_directory = os.path.abspath('results')
        command.reset_directory(results_directory)
        factory = browsers.browser_factories.get(cmd_opts.browser_type)
        failures = runtests.runtests(
            args,
            results_directory,
            out,
            test_dir=cmd_opts.dir_name,
            collect_only=cmd_opts.collect_only,
            report_format=cmd_opts.report_format,
            browser_factory=factory(),
            shared_directory=cmd_opts.shared_directory,
            screenshots_on=cmd_opts.screenshots_on,
            concurrency_num=cmd_opts.concurrency,
            failfast=cmd_opts.failfast,
            debug=cmd_opts.debug,
            extended=cmd_opts.extended_tracebacks,
            excludes=cmd_opts.excludes)

    return failures
コード例 #13
0
ファイル: test_runtests.py プロジェクト: Gagnavarslan/sst
 def run_tests(self, args, **kwargs):
     out = StringIO()
     failures = runtests.runtests(
         args, '/tmp', out,
         browser_factory=browsers.FirefoxFactory(),
         **kwargs)
     return failures
コード例 #14
0
ファイル: run.py プロジェクト: Gagnavarslan/sst
def main():
    cmd_opts, args = command.get_opts_run()
    out = sys.stdout
    cleaner = command.Cleaner(out)

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        out.write('starting virtual display...')
        display = Xvfb(width=1024, height=768)
        display.start()
        cleaner.add('stopping virtual display...\n', display.stop)

    with cleaner:
        results_directory = os.path.abspath('results')
        command.reset_directory(results_directory,
                                cmd_opts.skip_clean_results)
        factory = browsers.browser_factories.get(cmd_opts.browser_type)
        failures = runtests.runtests(
            args, results_directory, out,
            test_dir=cmd_opts.dir_name,
            collect_only=cmd_opts.collect_only,
            report_format=cmd_opts.report_format,
            browser_factory=factory(),
            shared_directory=cmd_opts.shared_directory,
            screenshots_on=cmd_opts.screenshots_on,
            concurrency_num=cmd_opts.concurrency,
            failfast=cmd_opts.failfast,
            debug=cmd_opts.debug,
            extended=cmd_opts.extended_tracebacks,
            excludes=cmd_opts.excludes,
            xml_results_filename=cmd_opts.xml_results_filename
        )

    return failures
コード例 #15
0
 def run_tests(self, args):
     out = StringIO()
     failures = runtests.runtests(args,
                                  'no results directory used',
                                  out,
                                  browser_factory=browsers.FirefoxFactory())
     return bool(failures)
コード例 #16
0
    def run_tests(self, args):
        self.out = StringIO()
        self.patch(sys, 'stdout', self.out)

        failures = runtests.runtests(args)

        exit_code = 0
        if failures:
            exit_code = 1
        return exit_code
コード例 #17
0
 def run_tests(self, *args, **kwargs):
     # FIXME: runtests use print, it should accept a stream instead. We also
     # should be able to better focus the test filtering but that requires
     # refactoring runtests. -- vila 2013-05-07
     self.out = StringIO()
     self.patch(sys, 'stdout', self.out)
     runtests.runtests(*args, test_dir='t', collect_only=True, **kwargs)
     lines = self.out.getvalue().splitlines()
     self.assertEqual('', lines[0])
     # We don't care about the number of tests, that will be checked later
     # by the caller
     self.assertTrue(lines[1].endswith('test cases loaded'))
     self.assertEqual('', lines[2])
     self.assertEqual('-' * 62, lines[3])
     self.assertEqual('Collect-Only Enabled, Not Running Tests...',
                      lines[4])
     self.assertEqual('', lines[5])
     self.assertEqual('Tests Collected:', lines[6])
     self.assertEqual('----------------', lines[7])
     return lines[8:]
コード例 #18
0
def main():
    cmd_opts, args = command.get_opts_run()
    out = sys.stdout
    cleaner = command.Cleaner(out)

    run_django(sst.DEVSERVER_PORT)
    cleaner.add('killing django...\n', kill_django, sst.DEVSERVER_PORT)

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        out.write('starting virtual display...\n')
        display = Xvfb(width=1024, height=768)
        display.start()
        cleaner.add('stopping virtual display...\n', display.stop)

    with cleaner:
        results_directory = os.path.abspath('results')
        command.reset_directory(results_directory)
        os.chdir(os.path.dirname(package_dir))
        test_dir = os.path.join(
            '.',
            'sst',
        )
        shared_directory = os.path.join('.', 'sst', 'selftests', 'shared')
        factory = browsers.browser_factories.get(cmd_opts.browser_type)
        failures = runtests.runtests(args,
                                     results_directory,
                                     out,
                                     test_dir=test_dir,
                                     collect_only=cmd_opts.collect_only,
                                     report_format=cmd_opts.report_format,
                                     browser_factory=factory(),
                                     shared_directory=shared_directory,
                                     screenshots_on=cmd_opts.screenshots_on,
                                     concurrency_num=cmd_opts.concurrency,
                                     failfast=cmd_opts.failfast,
                                     debug=cmd_opts.debug,
                                     extended=cmd_opts.extended_tracebacks,
                                     excludes=cmd_opts.excludes)

    return failures
コード例 #19
0
ファイル: test.py プロジェクト: DramaFever/sst
def main():
    cmd_opts, args = command.get_opts_run()
    out = sys.stdout
    cleaner = command.Cleaner(out)

    run_django(sst.DEVSERVER_PORT)
    cleaner.add('killing django...\n', kill_django, sst.DEVSERVER_PORT)

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        out.write('starting virtual display...\n')
        display = Xvfb(width=1024, height=768)
        display.start()
        cleaner.add('stopping virtual display...\n', display.stop)

    with cleaner:
        results_directory = os.path.abspath('results')
        command.reset_directory(results_directory)
        os.chdir(os.path.dirname(package_dir))
        test_dir = os.path.join('.', 'sst',)
        shared_directory = os.path.join('.', 'sst', 'selftests', 'shared')
        factory = browsers.browser_factories.get(cmd_opts.browser_type)
        failures = runtests.runtests(
            args, results_directory, out,
            test_dir=test_dir,
            collect_only=cmd_opts.collect_only,
            report_format=cmd_opts.report_format,
            browser_factory=factory(),
            shared_directory=shared_directory,
            screenshots_on=cmd_opts.screenshots_on,
            concurrency_num=cmd_opts.concurrency,
            failfast=cmd_opts.failfast,
            debug=cmd_opts.debug,
            extended=cmd_opts.extended_tracebacks,
            excludes=cmd_opts.excludes
        )

    return failures
コード例 #20
0
ファイル: test_runtests.py プロジェクト: DramaFever/sst
 def run_tests(self, test_dir, shared_dir=None):
     out = StringIO()
     runtests.runtests(None, 'no results directory used', out,
                       test_dir=test_dir, shared_directory=shared_dir,
                       collect_only=True)
     return out.getvalue().splitlines()
コード例 #21
0
ファイル: test_runtests.py プロジェクト: DramaFever/sst
 def run_tests(self, tests, **kwargs):
     out = StringIO()
     runtests.runtests(tests, 'no results directory used', out,
                       test_dir='t', collect_only=True, **kwargs)
     lines = out.getvalue().splitlines()
     return lines
コード例 #22
0
def main():
    cmd_opts, args = command.get_opts_run()

    print '--------------------------------------------------------------'
    print 'starting SST...'

    cleanups = []

    if cmd_opts.run_tests:
        cmd_opts.dir_name = 'selftests'
        if not tests.check_devserver_port_used(sst.DEVSERVER_PORT):
            run_django(sst.DEVSERVER_PORT)
            cleanups.append(('\nkilling django...', kill_django,
                             sst.DEVSERVER_PORT))
        else:
            print 'Error: port is in use.'
            print 'can not launch devserver for internal tests.'
            sys.exit(1)

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        print '\nstarting virtual display...'
        display = Xvfb(width=1024, height=768)
        display.start()
        cleanups.append(('\nstopping virtual display...', display.stop))

    if not cmd_opts.quiet:
        print ''
        print '  date time: %s' \
            % datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
        print '  test directory: %r' % cmd_opts.dir_name
        print '  report format: %r' % cmd_opts.report_format
        print '  browser type: %r' % cmd_opts.browser_type
        print '  shared directory: %r' % cmd_opts.shared_modules
        print '  screenshots on error: %r' % cmd_opts.screenshots_on
        print '  failfast: %r' % cmd_opts.failfast
        print '  debug: %r' % cmd_opts.debug
        print '  headless xserver: %r' % cmd_opts.xserver_headless
        print ''

    try:
        command.clear_old_results()
        factory = browsers.browser_factories.get(cmd_opts.browser_type)
        failures = runtests.runtests(
            args,
            test_dir=cmd_opts.dir_name,
            collect_only=cmd_opts.collect_only,
            report_format=cmd_opts.report_format,
            browser_factory=factory(cmd_opts.javascript_disabled),
            shared_directory=cmd_opts.shared_modules,
            screenshots_on=cmd_opts.screenshots_on,
            failfast=cmd_opts.failfast,
            debug=cmd_opts.debug,
            extended=cmd_opts.extended_tracebacks,
            excludes=cmd_opts.excludes
        )
    finally:

        print '--------------------------------------------------------------'
        for cleanup in cleanups:
            # run cleanups, displaying but not propagating exceptions
            desc = cleanup[0]
            cmd = cleanup[1]
            args = cleanup[2:]
            print desc
            try:
                cmd(*args)
            except Exception:
                print traceback.format_exc()

    return failures
コード例 #23
0
ファイル: test_runtests.py プロジェクト: DramaFever/sst
 def run_tests(self, args):
     out = StringIO()
     failures = runtests.runtests(args, 'no results directory used', out,
                                  browser_factory=browsers.FirefoxFactory())
     return bool(failures)
コード例 #24
0
ファイル: run.py プロジェクト: Work4Labs/selenium-simple-test
def main():
    cmd_opts, args = get_opts_run()

    print '--------------------------------------------------------------'
    print 'starting SST...'

    cleanups = []

    if cmd_opts.browsermob and cmd_opts.run_tests:
        print 'Warning: can not record local traffic from django testproject'

    if cmd_opts.browsermob:
        browsermob_process = run_browsermob_server(cmd_opts.browsermob)

        def browsermob_cleanup():
            browsermob_process.kill()
            browsermob_process.wait()

        cleanups.append(('\nkilling browsermob proxy...', browsermob_cleanup))

    if cmd_opts.run_tests:
        cmd_opts.dir_name = 'selftests'
        run_django()
        cleanups.append(('\nkilling django...', kill_django))

    if cmd_opts.xserver_headless:
        from sst.xvfbdisplay import Xvfb
        print '\nstarting virtual display...'
        display = Xvfb(width=1024, height=768)
        display.start()
        cleanups.append(('\nstopping virtual display...', display.stop))

    if not cmd_opts.quiet:
        print ''
        print '  date time: %s' \
            % datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
        print '  test directory: %r' % cmd_opts.dir_name
        print '  report format: %r' % cmd_opts.report_format
        print '  browser type: %r' % cmd_opts.browser_type
        print '  javascript disabled: %r' % cmd_opts.javascript_disabled
        print '  browswermob proxy launcher: %r' % cmd_opts.browsermob
        print '  shared directory: %r' % cmd_opts.shared_modules
        print '  screenshots on error: %r' % cmd_opts.screenshots_on
        print '  failfast: %r' % cmd_opts.failfast
        print '  debug: %r' % cmd_opts.debug
        print '  headless xserver: %r' % cmd_opts.xserver_headless
        print '  custom options: %r' % cmd_opts.custom
        print ''

    try:
        clear_old_results()
        runtests.runtests(
            args,
            test_dir=cmd_opts.dir_name,
            collect_only=cmd_opts.collect_only,
            report_format=cmd_opts.report_format,
            browser_type=cmd_opts.browser_type,
            javascript_disabled=cmd_opts.javascript_disabled,
            browsermob_enabled=bool(cmd_opts.browsermob),
            shared_directory=cmd_opts.shared_modules,
            screenshots_on=cmd_opts.screenshots_on,
            failfast=cmd_opts.failfast,
            debug=cmd_opts.debug,
            extended=cmd_opts.extended_tracebacks,
            saucelabs_enabled=cmd_opts.saucelabs_enabled,
            custom_options=cmd_opts.custom
        )
    finally:

        print '--------------------------------------------------------------'
        for desc, cmd in cleanups:
            # Run cleanups, displaying but not propagating exceptions
            try:
                print desc
                cmd()
            except Exception:
                print traceback.format_exc()