def METHOD_NAME(self):
    dts = ['train', 'valid', 'test']
    main_task = 'wizard_of_wikipedia'
    variants = [
        'WizardOfWikipediaTeacher',
        'WizardDialogKnowledgeTeacher',
        'BasicdialogTeacher',
        'DocreaderTeacher',
        'GeneratorTeacher',
    ]
    variant_args = {
        'WizardOfWikipediaTeacher': {},
        'WizardDialogKnowledgeTeacher': {
            'label_type': ['response', 'chosen_sent'],
            'include_knowledge': [False, True],
            'include_checked_sentence': [False, True],
        },
        'BasicdialogTeacher': {'wizard_dialog': [False, True]},
        'DocreaderTeacher': {
            'teacher_type': [
                'docs',
                'docs_sentence',
                'more_docs',
                'more_docs_sentence',
                'span',
            ]
        },
        'GeneratorTeacher': {
            'only_checked_knowledge': [False, True],
            'ignorant_dropout': [0, 0.5, 1],
        },
    }
    splits = ['random_split', 'topic_split']
    for datatype in dts:
        for task_var in variants:
            for split in splits:
                task_name = '{}:{}:{}'.format(main_task, task_var, split)
                opt_defaults = {'task': task_name, 'datatype': datatype}
                task_args = variant_args[task_var]
                if len(task_args) == 0:
                    print('Testing {} with args {}'.format(task_name, opt_defaults))
                    self._run_display_test(opt_defaults)
                else:
                    for combo in product_dict(task_args):
                        args = {**opt_defaults, **combo}
                        print('Testing {} with args {}'.format(task_name, args))
                        self._run_display_test(args)