hadley/devtools — Issue #60: test() won't work after check() when S4 methods are involved
Author: garrettgman
Created: 2012-02-08 16:14:14+00:00
State: open

...and vice versa

For example, after running

check("lubridate")

test produces the following error

test("lubridate")
Loading lubridate
Error: package slot missing from signature for generic ‘[<-’
and classes Interval, ANY
cannot use with duplicate class names (the package may need to be re-installed)

It seems test is trying to reload the S4 methods of lubridate, but gets confused because the methods are already loaded from check(). As a result, test isn't sure how to differentiate the methods it wants to load. The same thing happens when I run check() after test().

The error comes from R's behavior: The same thing happens outside of devtools if I try redefining existing S4 methods. I can use removeMethod("[<-,Interval,ANY") to postpone the error message until R encounters the next pre-existing S4 method - but I really need to remove all at once.

Can check() and test() remove S4 methods on exit?

Garrett