I think the answer depends on whether or not Polygon is a virtual base class. If it's virtual, then I would treat it as a "private" class and I wouldn't directly test it, and wouldn't need a Test_Polygon at all. Unit testing each of the subclasses should provide all the information of whether it functions properly or not.
If you are testing a method that's implemented in the base class, you could test it from any class that doesn't override it. If it's a method that's called from within your subclass, like Rectangle::SetSideLen(int len) { return Polygon::SetSideLen(len); };
then the testing should be accomplished by testing testRectangle.SetSideLen() in Test_Rectangle. And if you have no classes that don't override it, your base class is essentially unreachable code that probably should be removed.
If you can actually instantiate a stand-alone Polygon, then I would treat it like it's "public", so I would have Test_Polygon inherit from TestFixture in order to test those public methods.