diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-11-17 21:04:03 +0000 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2014-11-17 21:04:03 +0000 |
commit | 077807f94198124d0f326913c2fe299c966560eb (patch) | |
tree | 4f1cc6bf22b78c674989e7c2b0d6250af6687b8a /Source/UnitTests | |
parent | 8e5671a4763542c767a8bdba4b6ea41a2ad7691f (diff) |
Make run-unittests.py executable under Linux/OSX. This
required changing the line endings so that it uses unix
line endings.
Diffstat (limited to 'Source/UnitTests')
-rwxr-xr-x[-rw-r--r--] | Source/UnitTests/run-unittests.py | 248 |
1 files changed, 124 insertions, 124 deletions
diff --git a/Source/UnitTests/run-unittests.py b/Source/UnitTests/run-unittests.py index be906edd..29033943 100644..100755 --- a/Source/UnitTests/run-unittests.py +++ b/Source/UnitTests/run-unittests.py @@ -1,124 +1,124 @@ -#!/usr/bin/env python
-"""
-This is a simple script to invoke nunit-console.exe
-on Windows or Linux on all UnitTest libraries.
-"""
-import argparse
-import logging
-import os
-import subprocess
-import sys
-
-class ReturnCode:
- SUCCESS = 0
- CONFIG_ERROR = 1
- RUN_ERROR = 2
-
-
-def main(args):
- parser = argparse.ArgumentParser(description=__doc__)
- parser.add_argument('BuildType', choices=['Release', 'Debug'],
- help='Build type of unit test libraries')
- parser.add_argument('-l','--log-level',
- choices=['critical', 'error', 'warning', 'info', 'debug'],
- default='info',
- dest='log_level',
- help='Logging level. Default %(default)s')
- parser.add_argument('--nunit-console-path', default='',
- help='Path to nunit-console tool. If not set the script will try to guess its location',
- dest='nunit_console_path'
- )
- parser.add_argument('-e', '--nunit-console-extra-args', action='append',
- help='Pass extra arguments to nunit-console. This can be used multiple times',
- default=[],
- dest='nunit_console_extra_args'
- )
- parser.add_argument('--no-progress',
- action='store_true',
- dest='no_progress',
- help='Suppress nunit-console progress information')
-
-
- parsedArgs = parser.parse_args(args)
- logging.basicConfig(level=getattr(logging, parsedArgs.log_level.upper()))
- buildType=parsedArgs.BuildType
-
- logging.info('Build type is {}'.format(buildType))
-
- if parsedArgs.no_progress:
- parsedArgs.nunit_console_extra_args.append('-nodots')
-
- logging.info('Extra arguments to nunit-console "{}"'.format(parsedArgs.nunit_console_extra_args))
-
- UnitTestDirRoot = os.path.dirname(os.path.abspath(__file__))
-
- # Find nunit-console.exe
- if parsedArgs.nunit_console_path == "":
- # Try to guess where the tool is
- nunitConsolePath = os.path.join(os.path.join(UnitTestDirRoot,'..'),
- "packages",
- "NUnit.Runners.2.6.3",
- "tools",
- "nunit-console.exe"
- )
- # Mono needs the path to be absolute
- nunitConsolePath = os.path.abspath(nunitConsolePath)
- else:
- nunitConsolePath = parsedArgs.nunit_console_path
-
- logging.info('Looking for NUnit console at "{}"'.format(nunitConsolePath))
- if not os.path.exists(nunitConsolePath):
- logging.error('Could not find NUnit console tool')
- return ReturnCode.CONFIG_ERROR
-
- # Find unit test libraries
- unitTestLibraries = [ ]
- logging.info('Searching for Unit test libraries in "{}"'.format(UnitTestDirRoot))
- for (dirpath, dirnames, filenames) in os.walk(UnitTestDirRoot):
-
- # Search current directory for dll with correct suffix
- for filename in filenames:
- if filename.endswith('Tests.dll'):
- logging.debug('Found "{}" checking build type'.format(filename))
-
- pathComponents = dirpath.split(os.path.sep)
- fullPath = os.path.join(dirpath, filename)
- try:
- buildTypeIndex = pathComponents.index(buildType)
- if buildTypeIndex == 0 or pathComponents[buildTypeIndex -1] != 'bin':
- continue
-
- logging.info('Using "{}"'.format(fullPath))
- unitTestLibraries.append(fullPath)
- except ValueError:
- pass
-
- # Run Unit tests
- if len(unitTestLibraries) == 0:
- logging.error('No Unit test libraries were found')
- return ReturnCode.CONFIG_ERROR
-
- cmd = []
-
- if os.name == 'posix':
- cmd.append('mono')
-
- cmd.extend([nunitConsolePath, '-nologo'])
-
- if len(parsedArgs.nunit_console_extra_args) > 0:
- cmd.extend(parsedArgs.nunit_console_extra_args)
-
- cmd.extend(unitTestLibraries)
- logging.info('Running "{}"'.format(cmd))
- exitCode = subprocess.call(cmd)
- if exitCode != 0:
- logging.error('FAILED!')
- return ReturnCode.RUN_ERROR
- else:
- logging.info('Succeeded')
-
- return ReturnCode.SUCCESS
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
+#!/usr/bin/env python +""" +This is a simple script to invoke nunit-console.exe +on Windows or Linux on all UnitTest libraries. +""" +import argparse +import logging +import os +import subprocess +import sys + +class ReturnCode: + SUCCESS = 0 + CONFIG_ERROR = 1 + RUN_ERROR = 2 + + +def main(args): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('BuildType', choices=['Release', 'Debug'], + help='Build type of unit test libraries') + parser.add_argument('-l','--log-level', + choices=['critical', 'error', 'warning', 'info', 'debug'], + default='info', + dest='log_level', + help='Logging level. Default %(default)s') + parser.add_argument('--nunit-console-path', default='', + help='Path to nunit-console tool. If not set the script will try to guess its location', + dest='nunit_console_path' + ) + parser.add_argument('-e', '--nunit-console-extra-args', action='append', + help='Pass extra arguments to nunit-console. This can be used multiple times', + default=[], + dest='nunit_console_extra_args' + ) + parser.add_argument('--no-progress', + action='store_true', + dest='no_progress', + help='Suppress nunit-console progress information') + + + parsedArgs = parser.parse_args(args) + logging.basicConfig(level=getattr(logging, parsedArgs.log_level.upper())) + buildType=parsedArgs.BuildType + + logging.info('Build type is {}'.format(buildType)) + + if parsedArgs.no_progress: + parsedArgs.nunit_console_extra_args.append('-nodots') + + logging.info('Extra arguments to nunit-console "{}"'.format(parsedArgs.nunit_console_extra_args)) + + UnitTestDirRoot = os.path.dirname(os.path.abspath(__file__)) + + # Find nunit-console.exe + if parsedArgs.nunit_console_path == "": + # Try to guess where the tool is + nunitConsolePath = os.path.join(os.path.join(UnitTestDirRoot,'..'), + "packages", + "NUnit.Runners.2.6.3", + "tools", + "nunit-console.exe" + ) + # Mono needs the path to be absolute + nunitConsolePath = os.path.abspath(nunitConsolePath) + else: + nunitConsolePath = parsedArgs.nunit_console_path + + logging.info('Looking for NUnit console at "{}"'.format(nunitConsolePath)) + if not os.path.exists(nunitConsolePath): + logging.error('Could not find NUnit console tool') + return ReturnCode.CONFIG_ERROR + + # Find unit test libraries + unitTestLibraries = [ ] + logging.info('Searching for Unit test libraries in "{}"'.format(UnitTestDirRoot)) + for (dirpath, dirnames, filenames) in os.walk(UnitTestDirRoot): + + # Search current directory for dll with correct suffix + for filename in filenames: + if filename.endswith('Tests.dll'): + logging.debug('Found "{}" checking build type'.format(filename)) + + pathComponents = dirpath.split(os.path.sep) + fullPath = os.path.join(dirpath, filename) + try: + buildTypeIndex = pathComponents.index(buildType) + if buildTypeIndex == 0 or pathComponents[buildTypeIndex -1] != 'bin': + continue + + logging.info('Using "{}"'.format(fullPath)) + unitTestLibraries.append(fullPath) + except ValueError: + pass + + # Run Unit tests + if len(unitTestLibraries) == 0: + logging.error('No Unit test libraries were found') + return ReturnCode.CONFIG_ERROR + + cmd = [] + + if os.name == 'posix': + cmd.append('mono') + + cmd.extend([nunitConsolePath, '-nologo']) + + if len(parsedArgs.nunit_console_extra_args) > 0: + cmd.extend(parsedArgs.nunit_console_extra_args) + + cmd.extend(unitTestLibraries) + logging.info('Running "{}"'.format(cmd)) + exitCode = subprocess.call(cmd) + if exitCode != 0: + logging.error('FAILED!') + return ReturnCode.RUN_ERROR + else: + logging.info('Succeeded') + + return ReturnCode.SUCCESS + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) |