Кусок кода работает в консольном приложении, но не работает внутри nunit test
Простое консольное приложение, открытое соединение без проблем:
static void Main(string[] args)
{
string connectionString = String.Format(
@"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
"pwd", "schema", "server");
using (IDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
Console.WriteLine("Opened");
}
Console.ReadKey();
}
но если попытаться сделать то же самое в методе тестирования nunit:
public class UnitTest1
{
[Test]
public void TestMethod1()
{
string connectionString = String.Format(
@"Provider=OraOLEDB.Oracle;PLSQLRSet=1;Password={0};Persist Security Info=True;User ID={1};Data Source={2};OLEDB.NET=true;FetchSize=5000",
"pwd", "schema", "server");
using (IDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
}
}
}
Я получил исключение: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения
Очевидно проблема в окружающей среде.
Как "настроить" nunit для использования "тех же" настроек, что и для консольного приложения
некоторые детали:
целевая платформа: 4.0 целевая платформа: x86 nunit 2.5.9 ОС: Windows 7 x64
2 ответа
Проблема вызывает скобки в имени папки. (C:\Program Files (x86))
Если я запускаю nunit из папки c:\something(nunit)\, я получаю ту же ошибку.
Замена VS-пути на короткие 8.3 имен мне не помогает. Поэтому пришлось установить Oracle Client 11 и проблема исчезла.
Проверьте, помогает ли следующее: http://ora-12154.ora-code.com/