Identifying Waveform Segments Using Training Waveforms
Statistical Data Analysis

I would start with the following:


Statistically analyse your training events and see the mean and the variance of length and width and other properties to have an overall image of what they are. 
For each event take the mean and the standard deviation.
Walk through the test data and compute the error between test signal and learned events and plot it.
At the end for each event type, you will have an error curve whit many local minimums.
Choose a threshold based on standard deviation of training events and detect minimums behind that threshold as events.


Pattern Recognition

More advanced option is to learn a model to classify events. At the beginning I should say the last question is theoretically wrong because you do not generate features from test data but only compute them. Features have been extracted (generated) from training data. I assume you mean how to feed the model with test data for classification according to its size. Well, I'd say you can segment it to chunk which may lead to losing some events because of cutting points but if test data is large enough that would not be a problem.

The point is that time-series are a special kind of data and there are methods specifically for them so the classic feature extraction and learning may lead you to an ocean of confusing methods. I suggest to search the term Time-series Mining instead to see more direct solutions. 

Time-Series Mining

The very first approach I proposed was kind of this! There are many more algorithms for detecting similarity based on two time-series mostly based on Euclidean distance. For example look at LCSS or DTW. These methods are what you are looking for and both are advanced version of my first suggested algorithm. Please note that for all of them normalizing your training and test data plays an important role.

See this answer as well however that is about unsupervised segmentation of time-series.