[R-pkg-devel] Is using global assignment in package tests allowed?

Sokol Serguei @ergue|@@oko| @end|ng |rom gm@||@com
Thu Jan 27 17:31:12 CET 2022


On 27/01/2022 16:56, James Pustejovsky wrote:
> But I am not using global variables at all in the package code (in
> /R)---only for unit testing.
The response of Dirk can be seen as: create myenv in your package but 
use it in your tests instead of globalenv. This way you must be safe.

Serguei.


>   Is this distinction relevant? Or do I need to
> avoid global assignment even in the unit tests?
>
> On Thu, Jan 27, 2022 at 9:40 AM Dirk Eddelbuettel <edd using debian.org> wrote:
>
>> On 27 January 2022 at 07:20, Jeff Newmiller wrote:
>> | I don't know the answer to your question, but "beyond my ken" doesn't
>> sound like a very convincing reason. Mucking with any environment that
>> isn't yours is asking for trouble... the behavior you depend on today may
>> come into conflict with the code you are coordinating with when you least
>> expect it.
>>
>> Right on.
>>
>> Yes a number of packages (of mine and other people) use a different
>> approach
>> to maintain 'global state' without ... using 'global variables' (== bad).
>>
>> The trick is something like `pkgenv <- new.env()` in R/zzz.R and to then
>> also
>> set an option or two you need in .onLoad as eg  `pkgenv[["prefence"]] <-
>> "foo"`
>> which you can later test for, alter, ... at will.
>>
>> All without running afould of what `R CMD check --as-cran` may hate, all
>> the
>> while maintaining your logic flow.
>>
>> Dirk
>>
>> --
>> https://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list