How to specify test case(s) to run after creating a VUnit instance?
cjmeyer opened this issue · 2 comments
Is there a way to create the VUnit object and then specify the test case(s) to run? What I would like to do is create an instance of VUnit
, call add_library()
, add_source_files()
, etc, and then specify the test case(s) I would like to run just before, or when, I call main()
. It would maybe look something like:
vu = VUnit.from_args( ... )
vu.add_vhdl_builtins()
lib = vu.add_library('my_lib')
lib.add_sources(['src/*.vhd', 'tb/*.vhd'])
vu.main('my_lib.my_module.test_1')
My use case is using composable pytest fixtures to configure an instance of VUnit
and then in the test case call main()
(or equivalent) on the VUnit
instance to actually build and run the simulation. One pytest fixture would create the base VUnit
instance, and then successive fixtures would create libraries, add sources, set generics, etc, until the main test function called main()
.
What you can do is to modify the arguments in the script. https://vunit.github.io/py/ui.html#adding-custom-command-line-arguments explains how to add custom arguments and in that process the arguments are exposed such that you can modify them before creating the VUnit
instance. You can use that approach but skipping the step where you actually add a custom argument