zulip package: Add test runner script.
This commit is contained in:
		
							parent
							
								
									fb2aff4611
								
							
						
					
					
						commit
						b31cf2f9a9
					
				
					 1 changed files with 47 additions and 0 deletions
				
			
		
							
								
								
									
										47
									
								
								tools/test-zulip
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								tools/test-zulip
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,47 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from importlib import import_module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import os
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					import argparse
 | 
				
			||||||
 | 
					import unittest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
 | 
				
			||||||
 | 
					    os.chdir(os.path.dirname(TOOLS_DIR))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parser = argparse.ArgumentParser(description="Run tests for the zulip package.")
 | 
				
			||||||
 | 
					    parser.add_argument('--coverage',
 | 
				
			||||||
 | 
					                        nargs='?',
 | 
				
			||||||
 | 
					                        const=True,
 | 
				
			||||||
 | 
					                        default=False,
 | 
				
			||||||
 | 
					                        help='compute test coverage (--coverage combine to combine with previous reports)')
 | 
				
			||||||
 | 
					    options = parser.parse_args()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if options.coverage:
 | 
				
			||||||
 | 
					        import coverage
 | 
				
			||||||
 | 
					        cov = coverage.Coverage(config_file="tools/.coveragerc")
 | 
				
			||||||
 | 
					        if options.coverage == 'combine':
 | 
				
			||||||
 | 
					            cov.load()
 | 
				
			||||||
 | 
					        cov.start()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Codecov seems to work only when using loader.discover. It failed to capture line executions
 | 
				
			||||||
 | 
					    # for functions like loader.loadTestFromModule or loader.loadTestFromNames.
 | 
				
			||||||
 | 
					    test_suites = unittest.defaultTestLoader.discover('zulip')
 | 
				
			||||||
 | 
					    suite = unittest.TestSuite(test_suites)
 | 
				
			||||||
 | 
					    runner = unittest.TextTestRunner(verbosity=2)
 | 
				
			||||||
 | 
					    result = runner.run(suite)
 | 
				
			||||||
 | 
					    if result.failures or result.errors:
 | 
				
			||||||
 | 
					        sys.exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if not result.failures and options.coverage:
 | 
				
			||||||
 | 
					        cov.stop()
 | 
				
			||||||
 | 
					        cov.data_suffix = False  # Disable suffix so that filename is .coverage
 | 
				
			||||||
 | 
					        cov.save()
 | 
				
			||||||
 | 
					        cov.html_report()
 | 
				
			||||||
 | 
					        print("HTML report saved in directory 'htmlcov'.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue