I think maybe the defaults for LIBSVM (inherited from the underlying library) are not appropriate for the suggested test. Here is the test, with a Linear kernel and a small value for nu:
using LIBSVM
using Random
using Plots
rng = MersenneTwister(42)
traindata = randn(rng, (2, 500))
posdata = traindata[:, traindata[1, :] + traindata[2, :] .> 1]
fig = scatter(posdata[1, :], posdata[2, :]; label="Train", marker=:o, color=:blue)
# Default for comparison
# mdl = svmtrain(posdata; svmtype=OneClassSVM, nu=0.01)
mdl = svmtrain(posdata; svmtype=OneClassSVM, kernel=Kernel.Linear, nu=0.01)
testdata = randn(rng, (2, 200))
labels, values = svmpredict(mdl, testdata)
pos_data = testdata[:, labels]
neg_data = testdata[:, .~labels]
scatter!(fig, pos_data[1, :], pos_data[2,:]; marker=:+, color=:green, label="Test positive")
scatter!(fig, neg_data[1, :], neg_data[2,:]; marker=:+, color=:red, label="Test negative")
savefig(fig, "OneClassSVM.png")
display(fig)
