这些测试的过滤,或是对返回值的二重判断,
可以让测试过程更精准,测试结果更可控,
并可以更高层的应用测试脚本来保持批量化执行。
import pytest import tasks from tasks import Task @pytest.fixture(autouse=True) def initialized_tasks_db(tmpdir): tasks.start_tasks_db(str(tmpdir), 'tiny') yield tasks.stop_tasks_db() @pytest.mark.skip(reason="misunderstood the API") def test_unique_id_1(): id_1 = tasks.unique_id() id_2 = tasks.unique_id() assert id_1 != id_2 def test_unique_id_2(): ids = list() ids.append(tasks.add(Task('one'))) ids.append(tasks.add(Task('two'))) ids.append(tasks.add(Task('three'))) uid = tasks.unique_id() assert uid not in ids @pytest.mark.skipif(tasks.__version__ < '0.2.0', reason="not supported until version 0.2.0") def test_unique_id_3(): id_1 = tasks.unique_id() id_2 = tasks.unique_id() assert id_1 != id_2 @pytest.mark.xfail(tasks.__version__ < '0.2.0', reason="not supported until version 0.2.0") def test_unique_id_4(): id_1 = tasks.unique_id() id_2 = tasks.unique_id() assert id_1 != id_2 @pytest.mark.xfail() def test_unique_id_is_a_duck(): uid = tasks.unique_id() assert uid == "a duck" @pytest.mark.xfail() def test_unique_id_not_a_duck(): uid = tasks.unique_id() assert uid != "a duck"