Place a pan over a medium heat and add the oil. When hot, add the onion and cook for a few minutes until it has started to turn golden and softened.
2 tbsp olive oil, 1 large onion
Remove from the pan and put to one side for now.
Cut the tough part of the asparagus at the root end. If you bend them gently, they will naturally snap at the same point. Cut the stems in half.
300 g asparagus
Preheat the oven to 175C/350F/Gas mark 3.
Time to build. Place the pastry crust into the pan and spread the soft onions evenly around the base.
9 in pastry crust
Place the asparagus around the tray in any order you like (all facing one way, in a clock pattern your choice.)
Slice the tomatoes in half and place in between the asparagus spears. I like to have a random pattern of everything.
200 g plum tomatoes
Sprinkle the grated gruyere all over the tray trying to make it as even as possible.
100 g gruyere
Crack the eggs into a mixing bowl and add the salt, pepper and milk. Whisk together until thoroughly combined.
3 large eggs, Salt, pepper, 175 ml milk
Pour the egg/milk mixture over the filling again trying to keep it even.
Finally grate a little parmesan over the top and put it in the preheated oven for about 30 minutes. The consistency should be just set with a lovely brown top as shown in the picture.
75 g parmesan
Remove from the oven and allow it to cool for 10 minutes before serving. It will still be hot but gives the mixture chance to set a little more.