If I understand the semi-partial correlation correctly, the semi-partial correlation between x and y controlling for the effect of z on y is the correlation between x and the residuals of a regression of y on z. So, one way to test for the significance of this semi-partial correlation coefficient would be to first regress y on z, and then to regress the residuals from that regression on x. The p-value for the regression coefficient of x would be the same as the p-vaule for the semi-partial correlation coeffient, and hence also for its square.