Generic type interface conformity in C#

interface IVehicle {
    void Test();
}

class Car : IVehicle {
    public void Test() {
        //Implementation
    }
}

class Truck { }

class Service<T> where T : IVehicle {
    List<T> list = new List<T>();

    public void Add(T item) {
        list.Add(item);
    }

    public void Test() {
        foreach (var item in list) {
            item.Test();
        }
    }
}

var service = new Service<IVehicle>();
service.Add(new Car());
service.Test();

service.Add(new Truck());//<- Error