Fixture are usually used during a command and is considered stateless.
ChannelContext is supposed to be stateful : Sylius/Sylius#9987 (comment)
A Block has a product_codes and a channels nodes, if a product need to be found within a channel, then iterate through channels values to retrieve Products is a solution to avoid using the ChannelContext. If no channels is given then retrieve the Products without the Channel filter.
What do you think about that ?