Ich möchte einige SQL-Integrationstests in meinem R-Paket auf Appveyor ausführen. Ich benutze eine MDF-Datei, um die Datenbank von Interesse einzurichten, aber ich sehe Probleme mit einer MDF-Datei in meinem R-Paket. Hier sind die relevanten Schritte:R-Paket SQL-Integrationstests auf Appveyor einrichten
1) Vor der Erstellung, rufen Sie ein PowerShell-Skript auf, um die Datenbank mit der MDF-Datei in meinem Paket zu erstellen.
- Dieser Schritt erfolgt ohne Fehler
2) Die yml Datei läuft R Tests über travis-tool.sh run_tests
und versucht, die R-Projektdateien von c:\projects\HCRTools
auf das Build-Verzeichnis zu kopieren, das heißt C:\Users\appveyor\AppData\Local\Temp
Dieser Schritt schlägt fehl, da das MDF jetzt an SQL Server gebunden ist und nicht kopiert werden kann:
"Warnung in file.copy (pkgname, Tdir, rekursiv = TRUE): Problem beim Kopieren. \ Hcrtools \ inst \ CIDatabase \ SAM_log.ldf in C: \ Benutzer \ appveyor \ AppData \ Local \ Temp \ 1 \ RtmpCq659a \ Rbuild92c6989d34 \ hcrtools \ inst \ CIDatabase \ SAM_log.ldf: Zugriff verweigert ERROR Kopieren zu bauen Verzeichnis „failed
sehr jede mögliche Hilfe schätzen würde die MDF- Artefakt in das Hochladen, ohne es auch in der R-Paket zu sein! Konnte das nicht funktionieren lassen.
yml Datei:
init:
ps: |
$ErrorActionPreference = "Stop"
Invoke-WebRequest http://raw.github.com/krlmlr/r-appveyor/master/scripts/appveyor-tool.ps1 -OutFile "..\appveyor-tool.ps1"
Import-Module '..\appveyor-tool.ps1'
install:
ps: Bootstrap
services:
- mssql2012sp1
build_script:
- ps: iex .\inst\CIDatabase\CIBuild_DBCreate.ps1 #<-- Create DB (w/ no error)!
- Rscript -e "source('http://bioconductor.org/biocLite.R')" -e "chooseCRANmirror(ind=81)"
- travis-tool.sh install_deps
test_script:
- travis-tool.sh run_tests #<-- mdf copy error occurs!
on_failure:
- 7z a failure.zip *.Rcheck\*
- appveyor PushArtifact failure.zip
environment:
global:
WARNINGS_ARE_ERRORS: 0
_R_CHECK_FORCE_SUGGESTS_: 1
R_ARCH: x64
matrix:
- R_VERSION: release
Powershell-Datei Artefakte laden und erstellen Datenbank:
#-- Push artifacts up
Push-AppveyorArtifact inst/CIDatabase/SAM.mdf
Push-AppveyorArtifact inst/CIDatabase/SAM_log.ldf
#-- Use mdf/ldf to create SAM db
$mdfFile = "c:\projects\HCRTools\inst\CIDatabase\SAM.mdf"
$ldfFile = "c:\projects\HCRTools\inst\CIDatabase\SAM_log.ldf"
sqlcmd -S "(local)\SQL2012SP1" -Q "CREATE DATABASE [SAM] ON (FILENAME = '$mdfFile'), (FILENAME = '$ldfFile') for ATTACH"
Hinweis: hat appveyor Beispiel https://github.com/hadley/devtools als R-Paket im Einsatz. Danke für jede Richtung!