27 lines
		
	
	
		
			815 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			815 B
		
	
	
	
		
			Python
		
	
	
	
| def pytest_collection_modifyitems(config, items):
 | |
|     """Prefer faster tests."""
 | |
|     fast_items = []
 | |
|     slow_items = []
 | |
|     neutral_items = []
 | |
| 
 | |
|     slow_fixturenames = ("testdir",)
 | |
| 
 | |
|     for item in items:
 | |
|         try:
 | |
|             fixtures = item.fixturenames
 | |
|         except AttributeError:
 | |
|             # doctest at least
 | |
|             # (https://github.com/pytest-dev/pytest/issues/5070)
 | |
|             neutral_items.append(item)
 | |
|         else:
 | |
|             if any(x for x in fixtures if x in slow_fixturenames):
 | |
|                 slow_items.append(item)
 | |
|             else:
 | |
|                 marker = item.get_closest_marker("slow")
 | |
|                 if marker:
 | |
|                     slow_items.append(item)
 | |
|                 else:
 | |
|                     fast_items.append(item)
 | |
| 
 | |
|     items[:] = fast_items + neutral_items + slow_items
 |